如何将对象linq排序列表作为参数发送

发布于 2025-02-11 02:16:57 字数 2010 浏览 2 评论 0原文

我正在尝试使我的代码更加妥协,并且总体上使用较少,但是目前,我遇到的问题是无法发送以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; }
    }

我如何将接收tofinnish 作为参数纳入更改的ataviewRecteption

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.
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

        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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

听不够的曲调 2025-02-18 02:16:57

接收tofinnish将是匿名类型的对象的列表。但是您的方法需要列表&lt; object&gt;。现在允许使用此列表不是变体类型。

例如,您有一份香蕉列表,并想将其交给想要水果清单的人。这是行不通的,因为其他人可能会尝试在香蕉列表中添加橙色。

要解决此问题,请将值施加到对象明确地,例如:

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

receptionToFinnish will be a list full of objects of an anonymous type. But your method requires a 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:

select new
{
    Id = Afspraken.id,
    Klant = Users.gebruikersnaam,
    Betaald = Afspraken.factuur_betaald,
    Afgerond = Afspraken.volledig_afgerond
} as object
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文