1
我有两个linq语句,它们都产生相同的tye的输出。我怎样才能将这两个linq语句合并到一起,以便我得到一个列表。Linq:从两个linq源产生一个结果
例子:
var list1 = new List<string>() {"hello", "world", "!"};
var list2 = new List<string>() {"hello 2", "world 2", "! 2"};
var linq1 = from item in list1
where item.Contains('o')
select item;
var linq2 = from item in list2
where item.Contains('l')
select item;
var joined = linq1.Concat(linq2);
输出:
[0]: "hello"
[1]: "world"
[2]: "hello 2"
[3]: "world 2"
我想有这种在一个单一的LINQ语句。
linq1.Union(linq2)? – 2014-11-03 22:46:07
如果你想要一个'List'对象,'var list = joined.ToList();' – 2014-11-03 22:47:41
你想要“合并”('Union')吗?在前一种情况下,您必须重写'GetHashCode' +'Equals'或提供一个自定义的'IEqualityComparer''。 –
2014-11-03 22:49:08