C# Dictionary.ContainsKey/Value和检查某个键/值的foreach循环之间的速度有差异吗

C# Dictionary.ContainsKey/Value和检查某个键/值的foreach循环之间的速度有差异吗,c#,optimization,C#,Optimization,Dictionary.ContainsKey/Value和检查某个键/值的foreach循环之间的速度有差异吗?是 ContainsKey接近O(1)。至于ContainsValue,我不能确定,但我认为循环不会有太大区别。更快: 此方法接近O(1)操作 就像一个foreach循环 该方法执行线性搜索;因此,平均执行时间与计数成正比。也就是说,该方法是一个O(n)操作,其中n是Count 你为什么不试着告诉我们?为什么没有人试着告诉我们!很多观点,没有数据。我尝试了两种方法,一种使用contai

Dictionary.ContainsKey/Value
和检查某个键/值的
foreach
循环之间的速度有差异吗?

ContainsKey
接近O(1)。至于
ContainsValue
,我不能确定,但我认为循环不会有太大区别。

更快:

此方法接近O(1)操作

就像一个foreach循环

该方法执行线性搜索;因此,平均执行时间与计数成正比。也就是说,该方法是一个O(n)操作,其中n是Count


你为什么不试着告诉我们?为什么没有人试着告诉我们!很多观点,没有数据。我尝试了两种方法,一种使用containsKey,另一种使用for循环,并在1000000次迭代的循环中使用它们(一次一次),使用for循环的方法有点快,但这可能也是因为访问字典需要时间,因为我用for循环遍历了一个集合,用containskey为一个类的特定属性创建了一个字典containskey更快,这不是一个观点。您应该尝试使用包含10个以上项目的词典。对于一组非常小的项目,简单的比较可能会更快。