gpt4 book ai didi

c# - LINQ 环 : Any() vs Contains() for Huge Collections

转载 作者:IT王子 更新时间:2023-10-29 03:36:29 25 4
gpt4 key购买 nike

给定大量对象,以下各项之间是否存在性能差异?

Collection.Contains :

myCollection.Contains(myElement)

Enumerable.Any :

myCollection.Any(currentElement => currentElement == myElement)

最佳答案

Contains() 是一个实例方法,其性能很大程度上取决于集合本身。例如,List 上的 Contains() 是 O(n),而 HashSet 上的 Contains()是 O(1)。

Any() 是一种扩展方法,它将简单地遍历集合,将委托(delegate)应用于每个对象。因此它的复杂度为 O(n)。

Any() 更灵活,但是因为您可以传递委托(delegate)。 Contains() 只能接受一个对象。

关于c# - LINQ 环 : Any() vs Contains() for Huge Collections,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4445219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com