Estoy usando el Array.Contains
método en una matriz de cadenas. ¿Cómo puedo hacer que no distinga entre mayúsculas y minúsculas?
172
array.Contains("str", StringComparer.OrdinalIgnoreCase);
O dependiendo de la circunstancia específica, puede preferir:
array.Contains("str", StringComparer.CurrentCultureIgnoreCase);
array.Contains("str", StringComparer.InvariantCultureIgnoreCase);
CurrentCulture
), debería usarla enOrdinal
lugar de hacerloInvariantCulture
.InvariantCulture
. El uso de cualquiera de las tres opciones anteriores depende de las circunstancias. No me opongo a su reordenamiento, pero estoy eliminando el comentario "probablemente no". Ya está claro en la respuesta que debe elegir el que funcione para usted en la situación actual.Algunas notas importantes de mi parte, o al menos poner información distribuida en un lugar, con respecto al consejo anterior con un StringComparer como en:
array.Contains()
es un método de extensión LINQ y, por lo tanto, funciona de manera estándar solo con .NET 3.5 o superior, y necesita:using System;
using System.Linq;
Pero: en .NET 2.0, el
Contains()
método simple (sin tener en cuenta la insensibilidad a mayúsculas y minúsculas) es al menos posible de esta manera, con un reparto:if ( ((IList<string>)mydotNet2Array).Contains(“str”) ) {}
Como el método Contains () es parte de la interfaz IList, esto funciona no solo con matrices, sino también con listas, etc.
fuente
Implemente un IEqualityComparer personalizado que tenga en cuenta las mayúsculas y minúsculas.
Además, mira esto . Entonces (en teoría) todo lo que tendrías que hacer es:
fuente
fuente