回答
聯盟刪除重複。 Concat沒有。
因此,如果來源包含任何共同項目,或者有任何內部重複項目,它們會產生不同的結果。
如果您可以保證沒有重複項,或者只有很少的數據,並且您不關心在輸出中使用它們,那麼Concat將會更快,因爲無需針對已經生成的數據測試每個值。
但是,如果有很多重複項,並且您不需要它們,則Union中用於移除重複項的額外處理可能會因代碼中節省的消耗結果而抵消。
你只關心執行速度嗎?您收到它時需要多長時間來處理元素?
Concat
更簡單 - 它不需要執行任何處理本身,或緩衝它已經返回的結果。但是,如果交集中有任何元素,它會產生更多結果。如果你要花費很長時間來處理每個結果,Concat
可能最終有效有效變慢。
就我而言,我最終會使用Distinct(),這有利於我使用Union。 – 2009-08-26 21:54:54
如果你使用聯盟,那麼無論如何你都不需要調用Distinct。 – 2009-08-26 21:57:51
聯合會刪除列表之間的重複項,但如果第一個列表中有重複項,則這些重複項不會被聯合刪除。所以 - 根據具體情況,可能仍然需要調用。 – 2009-08-27 12:24:02
以上說的是正確的。 這裏只是一個小除了一些特殊情況:
如果你有,如果你需要全速來連接例如兩個列表和,考慮使用產量。當然這比Union或Concat Linq中的靈活性和舒適性要低得多。因此在特殊情況下才有意義。
此屬性,例如將提供相同List1.Concat(列表2)
public IEnumerable<MyObject> AllObjects
{
get
{
foreach (MyObject o1 in List1)
yield return o1;
foreach (MyObject o2 in List2)
yield return o2;
}
}
'Concat'完全按照您在示例中顯示的方式進行操作(請參閱:[source](https://referencesource.microsoft.com/#System.Core/System/Linq/ Enumerable.cs#800))。所以沒有必要由你自己來實現它。 – scher 2017-11-08 10:21:06
- 1. 哪個更快 - INSTR還是LIKE?
- 2. 哪個更快:多行還是多列?
- 3. 哪種方式更快?
- 4. 哪種搜索更快?
- 5. 哪種方法更快?
- 6. 哪一種更流利 - 語法更長還是更短?
- 7. 哪種格式的STL文件讀取速度更快:ascii還是binary?
- 8. 哪種方法更好更快 - Symfony2,Doctrine2
- 9. 哪種功能更快更高效?
- 10. 誰更快:PEG還是GLR?
- 11. C++更快:if還是length?
- 12. COUNT或UNION還是兩者?
- 13. 如何讓UNION ALL更快?
- 14. LINQ中的Concat/Union表格
- 15. 哪種標記語言?降價還是?
- 16. 哪種編程練習更快?
- 17. 哪種方式更快處理?
- 18. 哪種排序算法更快?
- 19. h2的各種選項 - 哪個更快?
- 20. 確定哪種算法漸近更快
- 21. Objective-C中哪個更快,要分配還是測試?
- 22. 哪個更快:克隆還是使用Streams?
- 23. 哪個更快,MogoDB聚合還是自我實現「For」循環?
- 24. Java:哪個更快?局部變量還是訪問封裝?
- 25. 哪一個更快?單獨的HTML還是嵌入在PHP中?
- 26. XML解析:JDOM還是RegEx?哪個更快?
- 27. php:variants:哪一個更快:is_int($ var)或($ var!== false)還是(!($ var === false))?
- 28. 在PHP foreach中,哪個更快,否定條件還是繼續?
- 29. 哪個執行時間更快:hql還是標準sql?
- 30. 哪個速度通常更快,收益率還是附加值?
嘗試兩者兼得。拿出一個秒錶。然後你就會知道。基於* guesswork *的績效「分析」,不管學歷多高,作爲制定工程*決策的基礎都沒有實際的用處。 – 2009-08-26 22:01:48