Home All Groups Group Topic Archive Search About

ListDictionary/NameValueCollection question

Author
25 Oct 2007 3:25 PM
Vikas Manghani
Hi
I have a situation wherein I need  hashtable type functionality and at the
same time, the collection must preserve the order of the items.
In other words, if I add items

Key     Value
"a"       "Val - A"
"X"       "Val - X"
"b"        "Val - B"
When I enumerate over the collection, I should get items in the same order
as inserted. I read at some site that ListDictionary and NameValueCollection
support this. But I am not sure about the same. Can anyone confirm if I can
use any of these collections?

Thanks and regards
Vikas Manghani

Author
25 Oct 2007 3:51 PM
Jon Skeet [C# MVP]
On Oct 25, 4:25 pm, Vikas Manghani
<VikasMangh***@discussions.microsoft.com> wrote:
> I have a situation wherein I need  hashtable type functionality and at the
> same time, the collection must preserve the order of the items.
> In other words, if I add items
>
> Key     Value
> "a"       "Val - A"
> "X"       "Val - X"
> "b"        "Val - B"
> When I enumerate over the collection, I should get items in the same order
> as inserted. I read at some site that ListDictionary and NameValueCollection
> support this. But I am not sure about the same. Can anyone confirm if I can
> use any of these collections?

I don't believe either of those preserve insertion order. The easiest
way is to maintain both a List<T> and a Dictionary<K,V>. I'm sure
there are classes available on the net which do this for you, of
course, but in many cases it's easy just to keep both (the list being
a list of keys) and update it yourself.

Jon

AddThis Social Bookmark Button