回答
联盟删除重复。 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