当前位置: 首页 > 编程语言 > C#

哪个更快:Union还是Concat?分享

时间:2023-04-10 13:38:40 C#

哪个更快:Union还是Concat?我不关心元素的顺序。http://msdn.microsoft.com/en-us/library/system.linq.enumerable.union.aspxhttp://msdn.microsoft.com/en-us/library/bb302894.aspx联合删除重复项。康卡特没有。因此,如果源包含任何共同项,或有任何内部重复项,它们将产生不同的结果。如果您可以保证没有重复项,或者如果您不这样做,并且您不关心在输出中使用它们,那么Concat会更快,因为不需要针对已经生成的值来测试每个值。但是,如果有很多重复项并且您不需要它们,则Union中用于删除作弊的额外处理可能会被代码中的节省所抵消。你只关心执行速度吗?元素收到后需要多长时间处理?Concat更简单——它不需要自己做任何处理,也不需要缓冲已经返回的结果。但是,如果交集中有任何元素,它会产生更多的结果。如果您需要很长时间来处理每个结果,Concat最终可能会变慢。以上是真实的。以下是针对特殊情况的一些补充:如果必须连接两个列表,如果需要全速,请考虑使用yield。当然,这比Linq的Union或Concat灵活和舒适得多。所以只有在特殊情况下才有意义。比如这个属性会提供和List1.Concat(List2)一样的属性以上是C#学习教程:联合还是Concat哪个更快?所有分享的内容,如果对你有用,需要进一步了解C#学习教程,希望大家多多关注——publicIEnumerableAllObjects{get{foreach(MyObjecto1inList1)yieldreturno1;foreach(List2中的MyObjecto2)yieldreturno2;}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: