简体   繁体   English

如何发送 Object Linq 排序列表作为参数

[英]How do I send a Object Linq sorted List as a parameter

I am trying to make my code more compromised, and use overall less, however currently I'm running into the problem of not being able to send a list of Objects sorted by linq as a parameter.我试图让我的代码更加妥协,并且总体上使用更少,但是目前我遇到了无法发送按 linq 排序的对象列表作为参数的问题。 the problem is in this part of the code:问题出在这部分代码中:

List<Afspraken> dataAfspraken = new List<Afspraken>();

public Form1()
    {
        InitializeComponent();
        fillListsForLinq();
        loadReceptionData();
    }

        private void fillListsForLinq()
        {
            dataAfspraken = data.getAfsprakenData();
            //here it fills the list with Afspraken objects
        }

private void loadReceptionData()
    {
        private void loadReceptionGrid
            var receptionToFinnish =
                (from AFspraken in dataAfspraken
                 where Afspraken.factuur_betaald == true && Afspraken.volledig_afgerond == false
                 join Users in dataUsers on Afspraken.gekoppelde_klant equals Users.id
                 select new
                 {
                     Id = Afspraken.id,
                     Klant = Users.gebruikersnaam,
                     Betaald = Afspraken.factuur_betaald,
                     Afgerond = Afspraken.volledig_afgerond
                 }).ToList();
            changeDataviewReception(receptionToFinnish);
        }

        private void changeDataviewReception(List<Object> listData)
        {
            dgvReceptionData.DataSource = listData
        }

the Afspraken class looks like this Afspraken 类看起来像这样

        public class Afspraken
    {
       
        public int id { get; set; }
        public bool bevestigd { get; set; }
        public DateTime datum { get; set; }
        public int gekoppelde_klant { get; set; }
        public int gekoppelde_monteur { get; set; }
        public string benodigde_hadelingen { get; set; }
        public decimal totaalprijs { get; set; }
        public bool klaar { get; set; }
        public bool factuur_betaald { get; set; }
        public bool volledig_afgerond { get; set; }
        public string opmerkingen { get; set; }
    }

How do I get receptionToFinnish as a parameter into changeDataviewReception ?如何将receiveToFinnish作为参数输入changeDataviewReception

receptionToFinnish will be a list full of objects of an anonymous type. receptionToFinnish将是一个包含匿名类型对象的列表。 But your method requires a List<object> .但是您的方法需要List<object> This is now allowed since a list is not a variant type.现在允许这样做,因为列表不是变体类型。

Say for example that you have a list of bananas and want to give it to someone that wants a list of fruits.例如,假设您有一份香蕉清单,并且想将其提供给想要一份水果清单的人。 This will not work since that other person might try to add an orange to the list of bananas.这将不起作用,因为其他人可能会尝试将橙色添加到香蕉列表中。

To fix this, cast the values to object explicitly, for example:要解决此问题,请将值显式转换为object ,例如:

select new
{
    Id = Afspraken.id,
    Klant = Users.gebruikersnaam,
    Betaald = Afspraken.factuur_betaald,
    Afgerond = Afspraken.volledig_afgerond
} as object

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM