<p>I'm lead to believe that I cannot count on the order of items added to a dictionary for enumeration purposes.</p>

<p><strong>Is there a class (generic if possible) to which items may be added with a key and which can be enumerated in addition order or which can be retrieved by key?</strong></p>

<p>Clarification: I do not want to enumerate in Key Order. I want to enumerate in addition order. Which is to say that I want to be able to retrieve the items via enumeration on a FIFO ( first in first out) basis.</p>

You can achieve the effect you want just by using a
```
List
```
that stores the keys in order of addition. Then you can enumerate that list in order, and retrieve the values from the
```
Dictionary
```
.
However, if you want to do all this with a single existing collection type, I'm not aware of a type that does this without you needing to provide a comparer or without the key being part of the item. For the former, you could try
```
SortedDictionary
```
and for the latter, you could derive a new collection from
```
KeyedCollection
```
(not entirely sure that this would maintain the order without a comparer so you'd need to experiment to confirm that).