poner pasar net minuscula mayusculas mayuscula capital asp c# .net collections

pasar - to title case c#



Una lista insensible a mayúsculas (4)

Historia similar aquí donde buscar para verificar contains

p.ej

public static bool Contains(this string source, string toCheck, StringComparison comp) { return source.IndexOf(toCheck, comp) >= 0; }

Necesito una lista que no distinga 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 claves de un Diccionario, pero no puedo encontrar nada similar para una Lista.


Parece que es 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, solo puede usar:

var strings = new HashSet<string>(StringComparer.InvariantCultureIgnoreCase);

... o algo similar, donde elegirías también el entorno cultural apropiado.

Una lista no tiene realmente la idea de una comparación en su mayor parte, solo cuando llama a IndexOf y métodos relacionados. No creo que haya ninguna manera de especificar la comparación a utilizar para eso. Podrías usar List<T>.Find . Sin embargo, List<T>.Find un predicado.


Usa Linq, esto agrega 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 }