Concat
是SQL中UNION ALL
的LINQ等效項。
我在LINQPad中設置了一個簡單的例子來演示如何使用Union
和Concat
。如果你沒有LINQPad,就明白吧。
爲了能夠看到這些設置操作的不同結果,第一組和第二組數據必須至少有一些重疊。在下面的例子中,兩組都包含單詞「不」。
打開LINQPad並將語言下拉菜單設置爲C#語句。以下內容粘貼到查詢窗格中並運行它:
string[] jedi = { "These", "are", "not" };
string[] mindtrick = { "not", "the", "droids..." };
// Union of jedi with mindtrick
var union =
(from word in jedi select word).Union
(from word in mindtrick select word);
// Print each word in union
union.Dump("Union");
// Result: (Note that "not" only appears once)
// These are not the droids...
// Concat of jedi with mindtrick (equivalent of UNION ALL)
var unionAll =
(from word in jedi select word).Concat
(from word in mindtrick select word);
// Print each word in unionAll
unionAll.Dump("Concat");
// Result: (Note that "not" appears twice; once from each dataset)
// These are not not the droids...
// Note that union is the equivalent of .Concat.Distinct
var concatDistinct =
(from word in jedi select word).Concat
(from word in mindtrick select word).Distinct();
// Print each word in concatDistinct
concatDistinct.Dump("Concat.Distinct");
// Result: (same as Union; "not" only appears once)
// These are not the droids...
在LinqPad結果看起來是這樣的:
你應該慶祝喬恩·韋爾的答案爲「接受」 – arviman 2014-06-09 08:07:44