gpt4 book ai didi

c# - 从列表中 ID 所在的集合中选择全部

转载 作者:行者123 更新时间:2023-11-30 16:16:29 25 4
gpt4 key购买 nike

我刚刚开始学习使用 lambda 表达式,几天前开始使用 Dapper。我正在开发一个填充 listView 的应用程序为某些帐户维护选择用户名。我在排序的一个部分遇到了问题:

  • 我正在使用 Dapper 查询获取对象集合并将其分配给变量 Global.allUsers .
  • 我有一个已经使用过的 ID ( List<int> migrated) 列表,因此不需要出现在 listView
  • 我正在使用以下方法获取所有用户的列表:

    var  uniqUsers = Global.allUsers.OrderBy(n => n.lastNames).GroupBy(q => q.salesIDs);

填充listView只有尚未迁移的用户,我只需要选择那些没有 q.salesIDs 的用户在migrated .我只是想不通是否/如何在不使用某种 foreach 的情况下做到这一点.似乎应该有一种方法来选择它。

当然,我正在遍历 uniqUsers无论如何,并填充 listView每个对象的属性中的值。我可以添加一条语句来检查当前 ID 是否在 migrated 中,但我的直觉只是告诉我,我可以使用 select 语句来完成它并为自己省了一步。

我是这样想的:

 var  uniqUsers = Global.allUsers.Where(i => i.salesIDs not in migrated).OrderBy(n => n.lastNames).GroupBy(q => q.salesIDs);

但是i => i.salesIDs not in migrated没有削减它。

最佳答案

这就是你需要的:

var uniqUsers = allUsers.Where(x => migrated.Contains(x.salesIDs))
.OrderBy(y => y.lastNames)
.GroupBy(z => z.salesIDs).SelectMany(v => v).ToList();

获取 salesIDmigrated 中的所有用户,然后按 lastNames 排序,然后按 salesID 分组>。 SelectMany() 将元素投影到序列中,ToList() 将枚举结果。

关于c# - 从列表中 ID 所在的集合中选择全部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18232698/

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