gpt4 book ai didi

c# - 使用 linq 将特定的不同记录获取到列表

转载 作者:太空狗 更新时间:2023-10-30 00:30:34 24 4
gpt4 key购买 nike

我一直在用这个:

return myListOfContacts.DistinctBy(e => e.Id).Where(e => e.CompanyId == companyId).ToList();

根据要求返回不同的列表。问题是,当记录重复时,返回的记录是列表中的第一条。

例如,如果我的联系人中有这些:

[Id - ContactId - 姓名 - FlagIWantThisOne]

1 - 99 - John - true
2 - 56 - Mike - false
2 - 56 - Mike - true
3 - 13 - Dave - false

它返回 3 条记录:

John, Mike and Dave.

但我想要的“Mike”记录是标志为 true 的记录。

总而言之,如果一条记录是重复的,列表应该返回标志设置为 true 的记录,并忽略其他记录。

我在那里得到了 distinctBy,但它返回了它在列表中找到的第一个。

最佳答案

你可以试试:

myListOfContacts.GroupBy(e => e.Id)
.Select(g => g.OrderByDescending(r => r.FlagIwantThisOne).First())
.ToList();

逻辑是:

按 Id 分组。然后,按组降序排序(true > false),并从每个组中取出第一个。

关于c# - 使用 linq 将特定的不同记录获取到列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34989742/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com