Jaký je nejlepší způsob iterace nad slovníkem?

Viděl jsem několik různých způsobů iterace nad slovníkem v jazyce C#. Existuje nějaký standardní způsob?

Řešení
foreach(KeyValuePair entry in myDictionary)
{
    // do something with entry.Value or entry.Key
}
Komentáře (24)

Pokud se pokoušíte použít obecný slovník v jazyce C# podobně jako asociativní pole v jiném jazyce:

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

Nebo pokud potřebujete pouze iterovat nad kolekcí klíčů, použijte příkaz

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

A konečně, pokud vás zajímají pouze hodnoty:

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

(Vezměte na vědomí, že klíčové slovo var je volitelnou funkcí jazyka C# 3.0 a vyšší, můžete zde také použít přesný typ vašich klíčů/hodnot)

Komentáře (5)

Řekl bych, že foreach je standardní způsob, i když samozřejmě záleží na tom, co hledáte.

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

Je to to, co hledáte?

Komentáře (2)