sirven - Diccionario sensible a mayúsculas y minúsculas con tipo de clave de cadena en C#
programa de mayusculas a minusculas c++ (3)
Si tengo un Dictionary<String,...>
es posible hacer que métodos como ContainsKey
distingan entre mayúsculas y minúsculas?
Esto parecía relacionado, pero no lo entendí correctamente: c # Dictionary: haciendo que la clave no distinga entre mayúsculas y minúsculas mediante declaraciones
Esto parecía relacionado, pero no lo entendí correctamente: c # Dictionary: haciendo que la clave no distinga entre mayúsculas y minúsculas mediante declaraciones
De hecho, está relacionado. La solución es indicarle a la instancia del diccionario que no use el método estándar de comparación de cadenas (que distingue entre mayúsculas y minúsculas), sino más bien usar un caso que no distinga entre mayúsculas y minúsculas. Esto se hace usando el constructor apropiado :
var dict = new Dictionary<string, YourClass>(
StringComparer.InvariantCultureIgnoreCase);
El constructor espera un IEqualityComparer
que le dice al diccionario cómo comparar claves.
StringComparer.InvariantCultureIgnoreCase
le ofrece una instancia de IEqualityComparer
que compara las cadenas de una manera que no distingue entre mayúsculas y minúsculas.
Hay pocas posibilidades de que su trato con el diccionario sea extraído de terceros o dll externo. Usando linq
YourDictionary.Any(i => i.KeyName.ToLower().Contains("yourstring")))
var myDic = new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase);
myDic.Add("HeLlo", "hi");
if (myDic.ContainsKey("hello"))
Console.WriteLine(myDic["hello"]);