在 LINQ 查詢中,Union 與 Concat 都能合併兩個序列,但它們的行為模式與適用場景截然不同,甚至無法簡單地用「誰效能較好」來評判。
UNION 操作。UNION ALL。由於演算法邏輯不同,兩者沒有直接可比性:
Concat 僅做簡單串接,時間複雜度 O(1) 延遲執行,極快,但會保留重複資料。Union 需建立集合(HashSet)進行去重,時間複雜度 O(N+M),記憶體開銷較大,但能保證結果唯一性。Concat。Union(或 Distinct() 搭配 Concat)。Concat 效能優勢明顯;若資料量小或必須去重,Union 的開銷可接受。總結:先確認業務需求(是否去重),再根據場景選擇,而非單純追求效能。