What is the best way to iterate over a dictionary?


Question

I've seen a few different ways to iterate over a dictionary in C#. Is there a standard way?

1
2349
5/10/2018 3:09:13 PM

Accepted Answer

foreach(KeyValuePair<string, string> entry in myDictionary)
{
    // do something with entry.Value or entry.Key
}
3373
12/20/2017 11:14:01 PM

If you are trying to use a generic Dictionary in C# like you would use an associative array in another language:

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

Or, if you only need to iterate over the collection of keys, use

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

And lastly, if you're only interested in the values:

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

(Take note that the var keyword is an optional C# 3.0 and above feature, you could also use the exact type of your keys/values here)


Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon