usar resueltos que programacion nombres funciones ejercicios ejemplos como caracteres cadenas arreglo array almacenar .net

.net - resueltos - ¿Cómo puedo hacer que Array.Contains distinga entre mayúsculas y minúsculas en una matriz de cadenas?



funciones de cadenas de caracteres en c++ (4)

Estoy usando el método Array.Contains en una matriz de cadenas. ¿Cómo puedo hacer que no distinga entre mayúsculas y minúsculas?


Algunas notas importantes de mi parte, o al menos poner alguna información distribuida en un solo lugar, con respecto a la sugerencia anterior con un StringComparer como en:

if (array.Contains("str", StringComparer.OrdinalIgnoreCase)) {}

  1. 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.

  2. Pero: en .NET 2.0 el método simple Contains() (sin tener en cuenta la insensibilidad de las mayúsculas) es al menos posible así, con un molde:

    if ( ((IList<string>)mydotNet2Array).Contains(“str”) ) {}

  3. Además de 1 .: Por la razón dada anteriormente, StringComparer en 1. solo funciona con las siguientes inclusiones de espacio de nombres (probado con .NET 3.5):

    using System;

    using System.Linq;

  4. Además de 2 .: El método Contains() no solo funciona con matrices, también funciona con listas :-)


Implemente un IEqualityComparer personalizado que tenga en cuenta la insensibilidad de mayúsculas y minúsculas.

Además, mira this . Entonces, en teoría, todo lo que tendrías que hacer es:

myArray.Contains("abc", ProjectionEqualityComparer<string>.Create(a => a.ToLower()))


array.Contains("str", StringComparer.OrdinalIgnoreCase);

O dependiendo de la circunstancia específica, es posible que prefiera:

array.Contains("str", StringComparer.CurrentCultureIgnoreCase); array.Contains("str", StringComparer.InvariantCultureIgnoreCase);


new[] { "ABC" }.Select(e => e.ToLower()).Contains("abc") // returns true