¿Cuál es la mejor manera de iterar sobre un diccionario?

He visto algunas formas diferentes de iterar sobre un diccionario en C#. ¿Existe una forma estándar?

Solución
foreach(KeyValuePair entry in myDictionary)
{
    // do something with entry.Value or entry.Key
}
Comentarios (24)

Si usted está tratando de usar un diccionario genérico en C# como usted usaría un array asociativo en otro lenguaje:

foreach(var item in myDictionary)
{
  foo(item.Key);
  bar(item.Value);
}

O, si sólo necesita iterar sobre la colección de claves, utilice

foreach(var item in myDictionary.Keys)
{
  foo(item);
}

Y por último, si sólo te interesan los valores

foreach(var item in myDictionary.Values)
{
  foo(item);
}

(Ten en cuenta que la palabra clave var es una característica opcional de C# 3.0 y superiores, también podrías usar el tipo exacto de tus claves/valores aquí)

Comentarios (5)

Yo diría que foreach es la forma estándar, aunque obviamente depende de lo que estés buscando

foreach(var kvp in my_dictionary) {
  ...
}

¿Es eso lo que estás buscando?

Comentarios (2)