gpt4 book ai didi

c# - 字典 Keys.Contains 与 ContainsKey : are they functionally equivalent?

转载 作者:IT王子 更新时间:2023-10-29 04:38:24 24 4
gpt4 key购买 nike

我很想知道这两者在所有情况下是否在功能上都是等价的。

是否有可能通过更改字典的默认比较器来使这两者在功能上有所不同?

另外,难道 Keys.Contains 几乎肯定会变慢吗?

最佳答案

这两个函数做的事情完全一样。

Keys.Contains存在是因为 Keys是一个 ICollection<TKey> ,它定义了一个 Contains方法。
标准Dictionary<TKey, TValue>.KeyCollection实现(类,而不是接口(interface))将其定义为

bool ICollection<TKey>.Contains(TKey item){ 
return dictionary.ContainsKey(item);
}

由于它是显式实现的,您甚至不能直接调用它。


您要么看到我上面解释的界面,要么看到 LINQ Contains()扩展方法,它也将调用 native 实现,因为它实现了 ICollection<T> .

关于c# - 字典 Keys.Contains 与 ContainsKey : are they functionally equivalent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8235840/

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