【问题标题】:Querying two collections at same time with Linq使用 Linq 同时查询两个集合
【发布时间】:2012-09-17 15:07:42
【问题描述】:

如果我有 2 个对象集合,是否可以在一个查询中有效地连接它们并从它们中进行选择?

例如:

var collection1 = GetSomeData();
var collection2 = GetSomeMoreData();

var myResult = from x in collection1
               from y in collection2
               where x.SomeProperty = "Yes"
               where y.SomeProperty = "Yes"
               select x, select y;

GetSomeDataGetSomeMoreData 都返回 IEnumerable<MyType>

显然这不会编译...但希望它可以说明我正在尝试做的想法...

【问题讨论】:

  • myResult 究竟应该包含什么?也许添加一个例子?

标签: c# .net linq collections


【解决方案1】:

我想你想要Enumerable.Concat:

var myResult = collection1.Concat(collection2)
                          .Where(x => x.SomeProperty == "Yes");

或在查询语法中:

var myResult = from x in collection1.Concat(collection2)
               where x.SomeProperty == "Yes"
               select x;

请注意,在 LINQ 的上下文中,您使用的“加入”一词通常是指根据某个键在两个序列之间查找(和配对/分组)公共元素。这不是你打算做的,是吗?

【讨论】:

  • 谢谢...我应该考虑 string.concat ;-) “加入”的术语让我转圈圈
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-24
相关资源
最近更新 更多