Preguntándose si esto es posible.Uso de Hashtables/Diccionarios con teclas de secuencia y Búsqueda sin distinción de mayúsculas y minúsculas
Tenemos una biblioteca tercera Parte que contiene información de identificación acerca de los usuarios ...
La principal interacción con la biblioteca es a través de una tabla hash que está adaptada con una cadena, y devuelve un gráfico de objetos de información para esa clave .
El problema es, la clave es, obviamente, mayúsculas y minúsculas, pero lo que obtenemos de los usuarios del navegador no necesariamente coinciden con el caso ... (a menudo conseguir la llave completamente lowercase'd)
I' Me pregunto si es posible hacer un caso Búsqueda de clave insensible en una tabla hash.
p. Ej.
Hashtable ht = new Hashtable();
ht.Add("MyKey", "Details");
string result = ht["MyKey"];
string result = ht["MYKEY"];
string result = ht["mykey"];
En la remota posibilidad de que pudiéramos enviar un ticket de soporte a la empresa para agregar esta funcionalidad, ¿existen otras estructuras de datos (es decir, las nuevas colecciones genéricas/diccionarios) que soportan esta funcionalidad
Por último, sería es posible anular el método System.String GetHashCode(), a hacer que todas las cadenas invariantes de casos devuelvan el mismo código hash ... por ejemplo Estoy pensando que esto es un no aficionado al string
como es una clase cerrada
Saludos, si alguien tiene alguna sugerencia
aparte: si está utilizando .NET 3.5, probablemente debería dejar de usar Hashtable, etc., y comenzar a utilizar las colecciones genéricas en su lugar. –
Re su comentario: tal vez simplemente llame a .ToLowerInvariant() en todas sus claves, entonces. –
* scratch head * Pero las claves que están dentro de la Hashtable no son ToLowered(). Es decir. Me dieron una tabla hash pre construida que está instanciada/poblada dentro de un dll. y las teclas en HT son sensibles a mayúsculas/minúsculas ... El único acceso que tengo al dll es a través de un getter/indexer donde paso la clave, así que incluso si toLowerInvarianted mis claves en el exterior, no coincidirían con las claves en el interior. –