繁体   English   中英

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

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

我试图让我的代码更加妥协,并且总体上使用更少,但是目前我遇到了无法发送按 linq 排序的对象列表作为参数的问题。 问题出在这部分代码中:

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
        }

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; }
    }

如何将receiveToFinnish作为参数输入changeDataviewReception

receptionToFinnish将是一个包含匿名类型对象的列表。 但是您的方法需要List<object> 现在允许这样做,因为列表不是变体类型。

例如,假设您有一份香蕉清单,并且想将其提供给想要一份水果清单的人。 这将不起作用,因为其他人可能会尝试将橙色添加到香蕉列表中。

要解决此问题,请将值显式转换为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