views:

93

answers:

2

is there difference in speed between Dictionary.ContainsKey/Value and a foreach loop that checks for a certain key/value ?

+4  A: 

Yes.

ContainsKey is nearly O(1). As for ContainsValue, I can't tell for sure, but I think there won't be much difference to a loop.

Maximilian Mayerl
+4  A: 

ContainsKey is faster :

This method approaches an O(1) operation.

ContainsValue is like a foreach loop.

This method performs a linear search; therefore, the average execution time is proportional to Count. That is, this method is an O(n) operation, where n is Count.

Guillaume
So it is! I thought it was implemented as a binary search in the background...
Goran