C# Caixa insensível Contém verificação de cordel
- Método 1: Usando o método C#
string.IndexOf()
. - Método 2: Usando o método
string.Contains()
em .Net 5+ & .NET Core 2.0+ - Método 3: Usando o método
Regex.IsMatch()
- Método 4: Usando
.ToUpper()
&.ToLower()
- C# Insensível à caixa Contém verificação para outros idiomas
- A melhor maneira de fazer Insensibilidade ao caso Contém verificação de cordas
On this page
- Método 1: Usando o método C#
string.IndexOf()
. - Método 2: Usando o método
string.Contains()
em .Net 5+ & .NET Core 2.0+ - Método 3: Usando o método
Regex.IsMatch()
- Método 4: Usando
.ToUpper()
&.ToLower()
- C# Insensível à caixa Contém verificação para outros idiomas
- A melhor maneira de fazer Insensibilidade ao caso Contém verificação de cordas
Neste tutorial, aprendemos diferentes maneiras de fazer uma seqüência insensível a maiúsculas e minúsculas, contendo verificação em C#
Parece ser um problema simples, mas o método padrão C# string.Contains()
é sensível a maiúsculas e minúsculas
E se a corda não estiver em inglês, ou seja, para outros idiomas, não podemos comparar diretamente os casos de texto insensíveis
As duas cordas devem estar na mesma cultura e nós devemos conhecer a cultura linguística.
Na maioria das vezes vamos comparar as cordas apenas em inglês.
Método 1: Usando o método C# string.IndexOf()
.
Podemos usar o método C# string.IndexOf()
para fazer a verificação de corda insensível a maiúsculas e minúsculas.
IndexOf()
o método aceita o parâmetro StringComparison.OrdinalIgnoreCase
, que especifica o tipo de busca a ser usado para os caracteres.
string textToCheck = "STRING Contains";
bool contains = textToCheck.IndexOf("string", StringComparison.OrdinalIgnoreCase) >= 0;
Método 2: Usando o método string.Contains()
em .Net 5+ & .NET Core 2.0+
Nas últimas versões do dot net, ou seja, em .Net Core 2.0+ e .Net 5+. O método string.Contains()
tem um método sobrecarregado que aceita o parâmetro StringComparison
.
string textToCheck = "STRING Contains";
bool checkContains = textToCheck.Contains("string",StringComparison.OrdinalIgnoreCase);
Método 3: Usando o método Regex.IsMatch()
Podemos usar expressões regulares para fazer a verificação de casos insensíveis contém cordel.
Se você está familiarizado com Regex
, utilize o método Regex.IsMatch()
e para verificar se o parâmetro RegexOptions.IgnoreCase
é insensível a maiúsculas e minúsculas
var stringToSearch = "hI hEllo";
var substring = "hello";
bool contains = Regex.IsMatch(stringToCheck, Regex.Escape(substring), RegexOptions.IgnoreCase);
//true
Método 4: Usando .ToUpper()
& .ToLower()
Se as cordas estiverem em inglês e o desempenho não for um problema, podemos converter ambas as cordas para o mesmo caso, então, faça com que a corda contenha verificação.
var stringToSearch = "hI hEllo";
var substring = "hello";
bool contains = stringToSearch.ToLower().Contains(substring.ToLower());
or
bool contains = stringToSearch.ToUpper().Contains(substring.ToUpper());
//true
C# Insensível à caixa Contém verificação para outros idiomas
A insensibilidade ao caso é dependente da linguagem
Por exemplo, no idioma inglês I
é a versão em maiúsculas do i
.
Considerando que na versão em maiúsculas em turco do i
é o caráter desconhecido İ
.
Para fazer a verificação de corda insensível ao caso, precisamos usar o objeto CultureInfo
.
var text = "İ";
var check = "i";
CultureInfo trCulture = new CultureInfo("tr-TR",false);
bool englishContains = text.IndexOf(check, StringComparison.OrdinalIgnoreCase) >= 0;
//false
var turkishContains = trCulture.CompareInfo.IndexOf(check, text, CompareOptions.IgnoreCase) >= 0;
//true
Eu criei CultureInfo
objeto para a língua turca. E comparei as duas cordas usando CompareInfo
, como mostrado abaixo.
trCulture.CompareInfo.IndexOf(check, text, CompareOptions.IgnoreCase) >= 0;
A melhor maneira de fazer Insensibilidade ao caso Contém verificação de cordas
Se você estiver usando a última versão do .Net
, use o método string.Contains()
.
Caso contrário, siga o método string.IndexOf()
.
Não prefira o método .ToUpper()
ou To.Lower()
, pois eles podem levar a problemas de desempenho.
Use CultureInfo
objeto para cordas em outros idiomas.