Question

Dans .NET puis-je utiliser une chaîne comme clé de dictionnaire? Cela fait partie d'un moteur de templating et je prévois permettent aux utilisateurs d'ajouter leurs en-têtes et des valeurs.

En-têtes seront quelque chose comme « la valeur de X » ou « Résumé des rapports et analyser XYZ », je suis inquiet si elles obtiendraient une exception dans un caractère rare ou quelque chose comme ça.

Je suppose que la limite de taille, mais attends que ce soit plus de 256 caractères. MSDN n'a pas obtenu de détails sur le sujet.

Était-ce utile?

La solution

Oui, il peut utiliser une chaîne valide (qui se limite à quelques milliards d'octets).

BTW, vous pouvez passer un IEqualityComparer<T> personnalisé que vous pouvez passer au constructeur de Dictionary qui pourrait nécessiter une limite maximale.

Autres conseils

Le dictionnaire n'a aucune connaissance particulière des types utilisés comme ses clés et des valeurs. Quel que soit le type d'objet il suffit d'appeler les méthodes de GetHashCode et Equals pour lui permettre de mettre la valeur dans le seau à droite et le récupérer à nouveau. Ce qui signifie que toute classe qui implémente correctement ces méthodes peuvent être utilisées comme clé.

La classe string n'implémente correctement ces méthodes en fonction de sa valeur, afin que vous pouvez construire une instance de la chaîne, vous pouvez l'utiliser comme clé.

Depuis la clé est juste une chaîne .NET, voir cette question liée SO:

scroll top