Duplicate keys in .NET dictionaries?

waltersobchek.myopenid.com picture waltersobchek.myopenid.com · Sep 28, 2008 · Viewed 226.3k times · Source

Are there any dictionary classes in the .NET base class library which allow duplicate keys to be used? The only solution I've found is to create, for example, a class like:

Dictionary<string, List<object>>

But this is quite irritating to actually use. In Java, I believe a MultiMap accomplishes this, but cannot find an analog in .NET.

Answer

Jon Skeet picture Jon Skeet · Sep 28, 2008

If you're using .NET 3.5, use the Lookup class.

EDIT: You generally create a Lookup using Enumerable.ToLookup. This does assume that you don't need to change it afterwards - but I typically find that's good enough.

If that doesn't work for you, I don't think there's anything in the framework which will help - and using the dictionary is as good as it gets :(