¿Cómo puedo hacer una matriz?Contiene mayúsculas y minúsculas en una matriz de cadenas?
Estoy usando el método Array.Contains
en una matriz de cadenas. ¿Cómo puedo hacer que sea insensible a mayúsculas y minúsculas?
4 answers
array.Contains("str", StringComparer.OrdinalIgnoreCase);
O dependiendo de la circunstancia específica, usted podría preferir:
array.Contains("str", StringComparer.CurrentCultureIgnoreCase);
array.Contains("str", StringComparer.InvariantCultureIgnoreCase);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-25 21:09:20
Algunas notas importantes de mi lado, o al menos poner algo de información distribuida en un solo lugar - en relación con la punta de arriba con un comparador de cadenas como en:
if (array.Contains("str", StringComparer.OrdinalIgnoreCase))
{}
array.Contains()
es un método de extensión LINQ y por lo tanto funciona por estándar solo con.NET 3.5 o superior.-
Pero: en. NET 2.0 el método simple
Contains()
(sin tener en cuenta la insensibilidad a mayúsculas y minúsculas) es al menos posible de esta manera, con un molde:if ( ((IList<string>)mydotNet2Array).Contains(“str”) ) {}
-
Adición a 1.: Para la razón dada anteriormente, el
StringComparer
en 1. solo funciona con las siguientes inclusiones de espacio de nombres (probado con. NET 3.5):using System;
using System.Linq;
Adición a 2.: El método
Contains()
no solo funciona con matrices, también funciona con listas :-)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-24 18:54:26
new[] { "ABC" }.Select(e => e.ToLower()).Contains("abc") // returns true
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-04 19:44:04
Implementa un IEqualityComparer personalizado que tenga en cuenta la insensibilidad a mayúsculas y minúsculas.
Además, marque this out. Entonces (en teoría) todo lo que tienes que hacer es:
myArray.Contains("abc", ProjectionEqualityComparer<string>.Create(a => a.ToLower()))
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:33:15