包含不同类型的两个集合相交

2024-04-29

假设我有一个集合,称之为ids它是类型IEnumerable<string>,我有第二个收藏,称之为objects它的类型MyObject[]. MyObject有一个名为的字符串属性id。我想要一个返回所有对象的 LINQ 语句objects集合谁的id匹配中的任何值ids收藏。ids将是严格子集objects.Select(x => x.id)。意思是,对于每个字符串ids我知道会有一个对应的MyObject in objects。有人可以发布一个纯 LINQ 解决方案吗?我尝试了几件事但没有运气。我可以很容易地提出一个迭代解决方案,因此除非仅使用 LINQ 无法完成,否则请不要发布任何解决方案。


“只是”LINQ:

var r = obj.Where(o => ids.Any(id => id == o.id));

但更好的是,对于更大的 n,有一个集合:

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

包含不同类型的两个集合相交 的相关文章

随机推荐

  • 为 C# 和 C++ 应用程序编写 DLL

    我需要编写几个 DLL 它们都可以从 C 应用程序和 C 应用程序访问 最初 我认为通过用 C 编写 DLL 并从 C 和 C 应用程序链接到它们可以节省时间 精力 这种方法明智吗 还是应该使用 C 编写 DLL 我的建议是在您最舒服的地方
  • 检测 TWebBrowser 文档中的活动元素何时发生变化

    是否有任何我可以挂钩的事件来检测网页上的活动元素何时发生变化 例如 当用户聚焦编辑框时 我知道我可以检查计时器中的活动元素 但如果可能的话我宁愿避免这种情况 这并不是对您的问题的完整答案 但希望能帮助您完成大部分工作 对于通过类似的 q 到
  • 如何启用 Genymotion 模拟器使用主机正在使用的 WIFI 互联网

    我在 Genymotion 模拟器上运行的应用程序需要互联网 互联网似乎无法在 Genymotion 模拟器上运行 我试图通过打开浏览器来确认这一点 这就是我得到的 我在我的笔记本电脑上运行 Windows 7 并使用 Wifi 互联网 我
  • Blackberry - 使用 Web 服务发送/接收 XML 数据

    用于创建 XML 并将 XML 数据发送到 Web 服务并从黑莓中的 Web 服务器返回 XML 响应的示例程序 kXML J2ME 设备的 XML 库 http kxml sourceforge net 在 Blackberry 上设置
  • “该选择不能在任何服务器上运行”

    我一直在 Eclipse 中开发一个动态 Web 项目 我收到这个错误 该选择不能在任何服务器上运行 早些时候它工作得很好 但现在我收到了这个错误 我删除了服务器并再次添加 Project gt Right Click gt Propert
  • 错误:$.cookie 不是函数

    我使用以下代码添加了 jQuery 插件 我的激活cookie的代码如下 document ready function ul sub menu a click function sliderid prodcls css display n
  • 我的项目中是否会自动创建 gitignore 文件?

    我一直在尝试使用 EGit 管理我正在处理的项目的本地副本 一旦其他人推我 我就会拉 但是 有文件显示我在本地存储库中有未提交的更改 但我没有进行任何更改 我尝试通过手动识别这些更改来解决这些问题 并发现它们来自 gitignore 文件
  • pytube 在 Android 中传输视频所需的时间太长

    我在用pytube在 Android 中流式传输视频 借助chaquopy 视频文件 py from pytube import YouTube def video link yt YouTube f https www youtube c
  • FormsAuthentication.SetAuthCookie() 是否需要重定向?

    检查用户的凭据并确认其良好后 我正在使用FormsAuthentication SetAuthCookie Username false 对用户进行身份验证 然后在母版页中我使用Page User Identity IsAuthentica
  • 不区分大小写“包含(字符串)”

    有没有办法让下面的返回为真 string title ASTRINGTOTEST title Contains string 似乎没有过载允许我设置区分大小写 目前我将它们都大写 但这很愚蠢 我指的是i18n http en wikiped
  • 为什么这个 eclipse 错误显示以及它的解决方案应该是什么

    缺少库 xdoclet 1 2 1 jar 选择 XDoclet 的主目录 1 2 1 为什么这个 eclipse 错误显示以及它的解决方案应该是什么alz 这可能是因为该 jar 没有添加到您的项目构建路径中 请按照以下步骤操作 Righ
  • 如何处理MaxUploadSizeExceededException

    MaxUploadSizeExceededException当我上传的文件大小超过允许的最大值时 会出现异常 我想在出现此异常时显示错误消息 如验证错误消息 我该如何处理这个异常 以便在 Spring 3 中执行类似的操作 Thanks 这
  • 可变长度数组性能影响 (C/C++)

    我正在编写一个相当简单的函数 它将数组发送到文件描述符 但是 为了发送数据 我需要附加一个一字节标头 这是我正在做的事情的简化版本 它似乎有效 void SendData uint8 t buffer size t length uint8
  • 使用Javascript自动将光标移动到下一个表单字段[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 是否可以使用Javascipt自动将
  • 自动滚动的实时行情(如 Twitter 的“热门推文”)

    是否有一个好的 Javascript 库可以生成自动滚动列表 例如 Twitter 主页上的 热门推文 最好作为 jQuery 插件 它还应该支持 AJAX 功能 动态添加新列表项 由于我们对现有的解决方案并不满意 因此我们从头开始实施了一
  • 移动数组中的元素

    我需要一点帮助 我想将数组中的元素向上移动一个元素 以便新位置 1 包含位置 1 中的旧值 new 2 包含 old 1 依此类推 旧的最后一个值被丢弃 第一个位置的新值是我每秒给出的新值 我使用大小为 10 的数组 uint32 t TE
  • 如何在 VMWare 中查看 Django 开发服务器?

    我正在尝试从运行 Windows 的 VMWare 连接到在 OS X localhost 8000 中运行的 Django 开发服务器 我尝试了各种设置组合 但似乎都不起作用 在 localhost 8000 上运行 Django 服务器
  • ServiceM8 - 我可以过滤多个字段吗

    我正在研究与 ServiceM8 的集成 并希望使用 filter REST API 来过滤多个 类似 company uuid 和 status 之类的东西 ServiceM8 文档给出了以下示例 但不包括 OR AND 类型逻辑的任何使
  • 在 where 子句中使用 CASE 时出现语法错误

    类似的问题已被问到here https stackoverflow com questions 22001787 using if condition in where clause 无论如何 我遇到了语法错误 我无法弄清楚 这是我的代码
  • 包含不同类型的两个集合相交

    假设我有一个集合 称之为ids它是类型IEnumerable