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

回到顶部