> I wrote a lot of code working with Dictionary`2 for this sort of > scenario, then I realised I needed duplicate "Keys", so I built my own > NameValueList(Of TName, TValue) inheriting from List(Of > KeyValuePair(Of TName, TValue))
Duplicate key dictionaries are easy to create. Derive a class from Dictionary<K, V>, and also write or use a collection class which can hold only unique values. That's your value. public class MultiValueDictionary<K, V> : Dictionary<K, UniqueValueList<V>> { // ... } The Add routine obtains the UniqueValueList for the specified key and adds the value. So with this you can simply keep on adding key-value pairs and still have O(1) of retrieving a key's values. For a unique value list, check for example: http://ewbi.blogs.com/develops/2006/10/uniquestringlis.html which is easy to rework to use any type. Or if you're on .NET 3.5, you can use the HashSet of course :) Frans > > Regards, > Mark Hurd, B.Sc.(Ma.)(Hons.) > > On 22/01/2008, Miika Makinen <[EMAIL PROTECTED]> wrote: > > Hi guys, > > What do you think? Do you think there's a reason to use namevaluecollection > > in .Net 2+ application? Does it perform better? > > > > Dictionary<string,string> is nice as you can quite easily refactor later to > > use some other types as keys or values... > > > > Miika > > =================================== > This list is hosted by DevelopMentorR http://www.develop.com > > View archives and manage your subscription(s) at http://discuss.develop.com =================================== This list is hosted by DevelopMentor® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com