Necesito una lista insensible a mayúsculas y minúsculas o un tipo de colección (de cadenas). ¿Cuál es la forma más fácil de crear uno? Puede especificar el tipo de comparación que desea obtener en las teclas de un diccionario, pero no puedo encontrar nada similar para una lista.Una lista insensible a mayúsculas y minúsculas
Respuesta
se parece a su posible aprovechar la clase KeyedCollection:
public class Set<T> : KeyedCollection<T,T>
{
public Set()
{}
public Set(IEqualityComparer<T> comparer) : base(comparer)
{}
public Set(IEnumerable<T> collection)
{
foreach (T elem in collection)
{
Add(elem);
}
}
protected override T GetKeyForItem(T item)
{
return item;
}
}
Suponiendo que está utilizando .NET 3.5, sólo puede utilizar:
var strings = new HashSet<string>(StringComparer.InvariantCultureIgnoreCase);
... o algo similar, en los que desea elegir el cultivo apropiado establecer también.
Una lista realmente no tiene la idea de una comparación en su mayor parte, solo cuando llama al IndexOf
y métodos relacionados. No creo que haya ninguna forma de especificar la comparación para usar para eso. Sin embargo, podría usar List<T>.Find
con un predicado.
historia similar aquí buscabas para comprobar si hay contains
por ejemplo,
public static bool Contains(this string source, string toCheck, StringComparison comp)
{
return source.IndexOf(toCheck, comp) >= 0;
}
utilizar LINQ, esto se suma un nuevo método para ¡Compare
using System.Linq;
using System.Collections.Generic;
List<string> MyList = new List<string>();
MyList.Add(...)
if (MyList.Contains(TestString, StringComparer.CurrentCultureIgnoreCase)) {
//found
}
No necesita 'Linq' para utilizar el método Contiene –
@ geo1701: pero ** necesita ** 'using System.Linq' para obtener la nueva sobrecarga con' StringComparer'! –
Gracias, buena respuesta, esperaba que hubiera una extensión, en lugar de tener que escribir la mía. ¡De lo contrario, no habría sabido dónde mirar! – Abacus
var Addresses = Pr.Where(a = >a.Key.ToUpper() == "KEY VALUE").ToList();
Sólo hacen sus claves en mayúsculas y búsqueda SUPERIOR DE VALOR
Esto es EXACTAMENTE el truco que quería evitar. – Grzenio
- 1. ordenación de lista insensible a mayúsculas y minúsculas, sin minúsculas?
- 2. Búsqueda de lista insensible a mayúsculas/minúsculas
- 3. Insensible a mayúsculas/minúsculas #define
- 4. Cadena insensible a mayúsculas y minúsculas :: find
- 5. LINQ contiene insensible a mayúsculas y minúsculas
- 6. KVC insensible a mayúsculas/minúsculas en Cocoa?
- 7. JavaScript: búsqueda insensible a mayúsculas/minúsculas
- 8. SOLR Búsqueda insensible a mayúsculas/minúsculas
- 9. Búsqueda insensible a mayúsculas/minúsculas usando Hibernate
- 10. Insensible a mayúsculas/minúsculas reemplace todo
- 11. ¿Búsqueda del diccionario insensible a mayúsculas y minúsculas?
- 12. Diccionario insensible a mayúsculas/minúsculas no funciona
- 13. Linq a Sql distinción insensible a mayúsculas y minúsculas
- 14. Búsqueda insensible a mayúsculas y minúsculas con $ en
- 15. ¿AutoMapper es sensible o insensible a las mayúsculas y minúsculas?
- 16. Búsqueda insensible a mayúsculas y minúsculas en el campo varbinary?
- 17. std insensible a mayúsculas y minúsculas :: conjunto de cadenas
- 18. Regex insensible a mayúsculas y minúsculas en javascript
- 19. Deserialización de propiedades insensible a las mayúsculas y minúsculas Json.NET
- 20. Sustitución de cadenas insensible a mayúsculas y minúsculas en JavaScript?
- 21. ¿SHA-256 es insensible a las mayúsculas y minúsculas?
- 22. Globo insensible a mayúsculas y minúsculas en zsh/bash
- 23. búsqueda insensible a mayúsculas y minúsculas de MySQL?
- 24. Collation insensible a mayúsculas y minúsculas en Oracle con LIKE
- 25. Búsqueda insensible a mayúsculas y minúsculas en Sybase
- 26. Analizador-analizador Scala insensible a las mayúsculas y minúsculas
- 27. Coincidencia insensible a mayúsculas y minúsculas en xpath?
- 28. Establecer Bootstrap Typeahead matcher insensible a mayúsculas y minúsculas
- 29. Búsqueda insensible a mayúsculas y minúsculas en grails
- 30. Insensible a mayúsculas y minúsculas Contiene con Dynamic Linq
Estoy atascado con .Net 2 tristemente :( – Grzenio