190 votes

Dictionnaire sensible à la casse avec chaîne type-clé en C #

Si j'ai un Dictionary<String,...> est-il possible de créer des méthodes comme ContainsKey insensibles à la casse?

Cela semblait lié, mais je ne le comprenais pas bien: Dictionnaire c #: rendre la clé insensible à la casse par les déclarations

373voto

Konrad Rudolph Points 231505

Cela semble lié, mais je ne comprenais pas correctement: c# Dictionnaire: de sorte que la Clé de la casse, à travers les déclarations

Il est en effet liés. La solution est-à-dire le dictionnaire exemple de ne pas utiliser la norme de la chaîne de la méthode de comparaison (qui est sensible à la casse), mais plutôt de l'utilisation d'un casse. Ceci est fait en utilisant le constructeur approprié:

var dict = new Dictionary<string, YourClass>(
        StringComparer.InvariantCultureIgnoreCase);

Le constructeur s'attend à une IEqualityComparer qui raconte le dictionnaire comment comparer des clés.

StringComparer.InvariantCultureIgnoreCase vous donne un IEqualityComparer exemple qui compare les chaînes de caractères dans une casse.

24voto

Steve Points 7753
        var myDic = new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase);
        myDic.Add("HeLlo", "hi");

        if (myDic.ContainsKey("hello"))
        {
            Console.WriteLine(myDic["hello"]);
        }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X