Kakšen je najboljši način za iteracijo po slovarju?

V C# sem videl nekaj različnih načinov iteracije po slovarju. Ali obstaja standardni način?

Rešitev
foreach(KeyValuePair entry in myDictionary)
{
    // do something with entry.Value or entry.Key
}
Komentarji (24)

Če poskušate uporabiti generični slovar v C#, kot bi uporabili asociativno polje v drugem jeziku:

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

Če pa želite le iterirati po zbirki ključev, uporabite

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

In nazadnje, če vas zanimajo samo vrednosti:

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

(Upoštevajte, da je ključna beseda var neobvezna lastnost C# 3.0 in novejših različic, tukaj lahko uporabite tudi točno določeno vrsto ključev/vrednosti)

Komentarji (5)

Rekel bi, da je foreach standardni način, čeprav je seveda odvisno od tega, kaj iščete.

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

Ali je to tisto, kar iščeš?

Komentarji (2)