2

如果我有 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;

GetSomeData, 并且GetSomeMoreData都返回IEnumerable<MyType>

显然这不会编译......但希望它能够说明我正在尝试做这个想法......

4

1 回答 1

8

我想你想要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 的上下文中,您使用的“加入”一词通常是指根据某个键在两个序列之间查找(和配对/分组)公共元素。那不是你打算做的,是吗?

于 2012-09-17T15:09:33.420 回答