JavaSa JavaSa - 1 year ago 28
C# Question

Iterating over Dictionary with foreach, in what order is this done?

Say I have a

Dictionary
, and I add each
key
and
value
entry in a specific order.

Now, if I want later to be able to iterate this
Dictionary
in the same order entries were added, is it the order I get with simple
foreach
loop on this dictionary?

If not, I will be glad to hear how can I do that, I know this can be done easily with
List
instead of
Dictionary
but I don't want to.

Thanks

Answer Source

Normal Dictionary does not guarantee order of items.

You need OrderedDictionary if you want to maintain order items where added to it. Note that there is no generic version of this class in .Net framework, so either have to give up some type-safety or find other implementation (i.e. https://www.codeproject.com/Articles/18615/OrderedDictionary-T-A-generic-implementation-of-IO as suggested by Tim S).

Alternatively if O(log n) lookup is fine and keys should be sorted - SortedDictionary.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download