LINQ Ring:大量集合的Any()vs Contains()
给定大量的对象,以下各项之间是否存在性能差异?
集合包含:
myCollection.Contains(myElement)
Enumerable.Any:
myCollection.Any(currentElement => currentElement == myElement)
回答:
Contains()
是实例方法,其性能在很大程度上取决于集合本身。例如,Contains()
a List
是O(n),而Contains()
a
HashSet
是O(1)。
Any()
是扩展方法,将简单地遍历集合,将委托应用于每个对象。因此,它的复杂度为O(n)。
Any()
但是更灵活,因为您可以传递一个委托。Contains()
只能接受一个对象。
以上是 LINQ Ring:大量集合的Any()vs Contains() 的全部内容, 来源链接: utcz.com/qa/404634.html