In .NET can I use any string as a dictionary key? This is part of a templating engine and I'm planning allow users to add their custom headers and values.
Headers will be something like "Value of X" or "Summary of Analyse & XYZ Reports", I'm worried if they would get an exception in a rare character or something like that.
I assume there size limit but expecting it to be larger than 256 characters. MSDN hasn't got any details on the subject.
The dictionary doesn't have any special knowledge of the types used as its keys and values. Irrespective of the object type it will simply call the GetHashCode
and Equals
methods to allow it to put the value in the right bucket and retrieve it again. Which means that any class which correctly implements these methods can be used as the key.
The string
class does correctly implement these methods based on its value, so as long as you can construct an instance of the string, then you can use it as the key.
Yes, it can use any valid string (which is limited to a couple billion bytes).
BTW, you might pass a custom IEqualityComparer<T>
that you might pass to the Dictionary
constructor which might require a maximum limit.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With