使用 LINQ 过滤列表

2024-02-28

我有一个从外部应用程序返回的人员列表,并且我正在本地应用程序中创建一个排除列表,以便我可以选择手动从列表中删除人员。

我有一个我创建的复合键,它对两者都是通用的,我想找到一种使用我的列表从我的列表中删除人员的有效方法

e.g

class Person
{
    prop string compositeKey { get; set; }
}

class Exclusions
{
    prop string compositeKey { get; set; }
}

List<Person> people = GetFromDB;

List<Exclusions> exclusions = GetFromOtherDB;

List<Person> filteredResults = People - exclustions using the composite key as a comparer

我认为 LINQ 是执行此操作的理想方法,但在尝试连接、扩展方法、使用收益等之后,我仍然遇到麻烦。

如果这是 SQL 我会使用not in (?,?,?) query.


看看Except http://msdn.microsoft.com/en-us/library/bb336390.aspx方法,您可以这样使用:

var resultingList = 
    listOfOriginalItems.Except(listOfItemsToLeaveOut, equalityComparer)

您将需要使用我链接到的重载,它允许您指定自定义 IEqualityComparer。这样您就可以根据复合键指定项目如何匹配。 (不过,如果您已经重写了 Equals,则不需要 IEqualityComparer。)

Edit:由于您似乎正在使用两种不同类型的类,因此这是另一种可能更简单的方法。假设一个List<Person> called persons and a List<Exclusion> called exclusions:

var exclusionKeys = 
        exclusions.Select(x => x.compositeKey);
var resultingPersons = 
        persons.Where(x => !exclusionKeys.Contains(x.compositeKey));

换句话说:从排除中仅选择键,然后从人员中选择所有人员对象don't拥有这些钥匙中的任何一个。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 LINQ 过滤列表 的相关文章

  • Qt - 无法让 lambda 工作[重复]

    这个问题在这里已经有答案了 我有以下功能 我想在其中修剪我的std set
  • 获取两个字符串之间的公共部分c# [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要的是获取两个单词之间的共同部分并获取差异 例子 场景1 word1 感言 word2 Test 将返回 公共部分Test 不同之
  • 捕获 foreach 条件中抛出的异常

    我有一个foreach在 foreach 本身的条件下循环期间中断的循环 有没有办法try catch抛出异常然后继续循环的项 这将运行几次 直到异常发生然后结束 try foreach b in bees exception is in
  • Blazor 与 Razor

    随着 Blazor 的发明 我想知道这两种语言之间是否存在显着的效率 无论是在代码创建方面还是在代码的实际编译 执行方面 https github com SteveSanderson Blazor https github com Ste
  • 处理 fanart.tv Web 服务响应 JSON 和 C#

    我正在尝试使用 fanart tv Webservice API 但有几个问题 我正在使用 Json Net Newtonsoft Json 并通过其他 Web 服务将 JSON 响应直接反序列化为 C 对象 这里的问题是元素名称正在更改
  • std::map 和二叉搜索树

    我读过 std map 是使用二叉搜索树数据结构实现的 BST 是一种顺序数据结构 类似于数组中的元素 它将元素存储在 BST 节点中并按其顺序维护元素 例如如果元素小于节点 则将其存储在节点的左侧 如果元素大于节点 则将其存储在节点的右侧
  • 调试内存不足异常

    在修复我制作的小型 ASP NET C Web 应用程序的错误时 我遇到了 OutOfMemoryException 没有关于在哪里查看的提示 因为这是一个编译时错误 如何诊断此异常 我假设这正是内存分析发挥作用的地方 有小费吗 Thank
  • 在 C# 中将位从 ulong 复制到 long

    所以看来 NET 性能计数器类型 http msdn microsoft com en us library system diagnostics performancecounter aspx有一个恼人的问题 它暴露了long对于计数器
  • 是否有与 C++11 emplace/emplace_back 函数类似的 C# 函数?

    从 C 11 开始 可以写类似的东西 include
  • 禁用 LINQ 上下文的所有延迟加载或强制预先加载

    我有一个文档生成器 目前包含约 200 个项目的查询 但完成后可能会超过 500 个 我最近注意到一些映射表示延迟加载 这给文档生成器带来了一个问题 因为它需要根据生成的文档来访问所有这些属性 虽然我知道DataLoadOptions可以指
  • C++派生模板类继承自模板基类,无法调用基类构造函数[重复]

    这个问题在这里已经有答案了 我试图从基类 模板 继承 派生类也是模板 它们具有相同的类型 T 我收到编译错误 非法成员初始化 Base 不是基类或成员 为什么 如何调用基类构造函数 include
  • 范围和临时初始化列表

    我试图将我认为是纯右值的内容传递到范围适配器闭包对象中 除非我将名称绑定到初始值设定项列表并使其成为左值 否则它不会编译 这里发生了什么 include
  • 用于从字符串安全转换的辅助函数

    回到 VB6 我编写了一些函数 让我在编码时无需关心字符串的 null 和 数字的 null 和 0 等之间的区别 编码时 没有什么比添加特殊情况更能降低我的工作效率了用于处理可能导致一些不相关错误的数据的代码 9999 10000 如果我
  • std::bind 重载解析

    下面的代码工作正常 include
  • 32位PPC rlwinm指令

    我在理解上有点困难rlwinmPPC 汇编指令 旋转左字立即然后与掩码 我正在尝试反转函数的这一部分 rlwinm r3 r3 0 28 28 我已经知道什么了r3 is r3在本例中是一个 4 字节整数 但我不确定这条指令到底是什么rlw
  • 是否有一个 C++ 库可以从 PDF 文件中提取文本,例如 PDFBox for Java? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 去年 我使用 PDFBox 在 Java 中创建了一个应用程序来获取某些 PDF 文件中的原始文本 现在
  • 我应该在应用程序退出之前运行 Dispose 吗?

    我应该在应用程序退出之前运行 Dispose 吗 例如 我创建了许多对象 其中一些对象具有事件订阅 var myObject new MyClass myObject OnEvent OnEventHandle 例如 在我的工作中 我应该使
  • 为什么 Ajax.BeginForm 在 Chrome 中不起作用?

    我正在使用 c NET MVC2 并尝试创建一个 ajax 表单来调用删除数据库记录 RemoveRelation 的方法 删除记录的过程正在按预期进行 删除记录后 表单应调用一个 JavaScript 函数 从视觉效果中删除该记录 Rem
  • 以编程方式使用自定义元素创建网格

    我正在尝试以编程方式创建一个网格 并将自定义控件作为子项附加到网格中 作为 2x2 矩阵中的第 0 行第 0 列 为了让事情变得更棘手 我使用了 MVVM 设计模式 下面是一些代码可以帮助大家理解这个想法 应用程序 xaml cs base
  • boost::program_options:带有固定和可变标记的参数?

    是否可以在 boost program options 中使用此类参数 program p1 123 p2 234 p3 345 p12 678 即 是否可以使用第一个标记指定参数名称 例如 p 后跟一个数字 是动态的吗 我想避免这种情况

随机推荐

  • 使用 Express 和 Node,如何跨子域/主机头维护 Session

    我有一个单节点服务器 它响应请求并根据主机标头重定向用户 用法是静态 主站点位于 www 每个用户都有自己的子域 即 www example com 和 site example com 路由按照 site js 进行 当用户未登录时 他们
  • 确保只有一个应用程序实例[重复]

    这个问题在这里已经有答案了 可能的重复 创建单实例应用程序的正确方法是什么 https stackoverflow com questions 19147 what is the correct way to create a single
  • Firebase 部署缓慢并收到警告

    当我尝试运行 Firebase部署 时 它卡在这行代码上 i deploying functions i functions ensuring necessary APIs are enabled functions all necessa
  • ui.router:如何从 URL 中省略默认参数

    我定义了以下状态 stateProvider https github com angular ui ui router angularui router stateProvider state byTeams url team id ye
  • 为什么显示.GIF图像会不断增加内存?

    我正在展示简单的代码示例 我在 a 中展示了一张 gif 图像Jlabel 运行程序时 任务管理器显示内存不断增加 为什么会发生这种情况 Edited 请尝试此代码 在显示玻璃按钮上 玻璃面板显示有 gif 图像 其中有一个隐藏玻璃按钮 并
  • Chrome 移动模拟。 Selenium 和 Devtools 的窗口大小不同

    需要测试网站的责任 代码示例取自here http chromedriver chromium org mobile emulation 在页面底部 面对的是 硒以不同的尺寸 分辨率打开镀铬窗口 比我预期的要好 看起来 PixelRatio
  • 将 int64_t 转换为 time_duration

    我想转让一个boost posix time ptime通过网络作为boost int64 t 根据将 boost posix time ptime 转换为 int64 的方法 https stackoverflow com questio
  • 在 Spring Security 和 Hibernate 中使用 jdbcAuthentication

    我刚刚完成了一个 Spring 应用程序 它基于inMemoryAuthentication 现在 在验证所有工作正常后 我想使用 JDBC 身份验证 我有三种类来处理与数据库的连接 HibernateConfig 基于这篇博文中提供的代码
  • 获取子列表上有条件的列表

    我有两个列表 listA 是一个列表MyClassA和列表BMyClassB MyClassA具有以下属性 Id Name MyClassB具有以下属性 Id Name Active 我的班级ID An item MyClassA可以有一项
  • 在 React + Typescript 中将 ref 传递给子级

    我有一个应用程序 我需要在其中管理对输入的关注 为此我使用 Reactref 我有两个输入想要移动到一个单独的组件中 现在它们看起来如下
  • 如何从决策树中获取每个节点的百分比

    如何创建一个包含下图中每个节点的百分比的表格 library rpart library rattle library rpart plot library RColorBrewer fit lt rpart Species data ir
  • 如何在 GitHub 上创建自己的存储库?

    我在 GitHub 上有一个公共存储库 我想复制 复制它并基于此存储库开发一个新项目 但我不想影响它现在的样子 我尝试使用 GitHub UI 分叉它 但没有执行任何操作 我不认为你可以分叉你自己的仓库 克隆它并将其推送到新的存储库很好 但
  • pow 函数使用 ThreadPoolExecutor 阻塞所有线程

    尽管关于 ThreadPoolExecutor 的第一个示例使用了 pow 函数 https docs python org 3 library concurrent futures html https docs python org 3
  • 在Ember-cli项目中使用ES6库

    我有一个使用 Ember Cli 的小型 EmberJS 应用程序 我的应用程序有一个私有 ES6 库 它是一个 Bower 依赖项 基本上 我想要的是导入库并在任何我想要的地方使用它 如果我没记错的话 我应该将库转译为我的brocfile
  • Elastic Search,是否可以获取搜索结果集中特定文档的索引?

    我知道要在结果集中显示的特定文档的 ID 但我不知道它将显示在结果的哪一页上 弹性搜索是否可以告诉它返回特定文档所在的页面 我的猜测是这是不可能的 我当前的方法是在仅加载文档 ID 后运行查询 并返回一个非常大的 全部 查询结果集 我在此列
  • htaccess:将所有请求重定向到不同的域(没有查询参数)

    如何将 sub domain com 上的所有请求 无论正在请求哪个页面 重定向到 newdomain com 目前我有 Redirect 301 http www newdomain com 当请求传入domain com shop pr
  • -Dlog4j.formatMsgNoLookups=true 或 -Dlog4j2.formatMsgNoLookups=true - 哪个是正确的?

    哪一个是正确的 Dlog4j formatMsgNoLookups true Dlog4j2 formatMsgNoLookups true 或者两者都在工作 Ref log4j https dev to composite how to
  • 写入文件直到达到一定大小

    我正在为站点地图编写 XML 文件 Google 表示该文件不能大于 10MB 我想知道是否有一种方法可以写入文件 直到满足特定的文件大小 然后关闭它并打开一个新文件 我拥有它 一旦达到一定数量的条目 它将关闭文件并打开一个新文件 我正在使
  • 在 Grails 域类中设置日期字段的默认值

    我正在尝试为 a 设置默认值DateDomain 类中的字段 我可以用defaultValue in the mapping配置 但它不起作用Date字段 我已经尝试过String and Integer并且效果很好 这是一个例子 clas
  • 使用 LINQ 过滤列表

    我有一个从外部应用程序返回的人员列表 并且我正在本地应用程序中创建一个排除列表 以便我可以选择手动从列表中删除人员 我有一个我创建的复合键 它对两者都是通用的 我想找到一种使用我的列表从我的列表中删除人员的有效方法 e g class Pe