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