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

标签 c# list select dapper

我刚刚开始学习使用 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/

相关文章:

R:如何将由行索引列表表示的稀疏二进制矩阵转换为列索引列表

java - 就地过滤 Java 列表,无需外部库

c# - 将 POCO 对象类和 DBContext 从 Entity Framework 6 模型中分离出来

C# 接口(interface) - 用不同的签名实现

c# - 内部静态类包含私有(private)类。如何使用 Microsoft Fakes 创建用于单元测试的私有(private)类对象

python - 从列表中选择的最佳方式

php - 使用连接从一个 MYSQL 表中选择随机行

php - 从多条件请求中选择行

c - 让 select 和 xcb_poll_for_event 一起工作的安全方法?

c# - 如何从对象列表创建 xml 文件