Función Case Insensitive Contains String en C#

Muhammad Maisam Abbas 16 febrero 2024
  1. Cree una función de contenido que no distinga entre mayúsculas y minúsculas con la función string.IndexOf() en C#
  2. Cree una función Contains que no distinga entre mayúsculas y minúsculas con la clase CultureInfo en C#
Función Case Insensitive Contains String en C#

Este tutorial presentará métodos para crear una función que verifique si una cadena contiene otra cadena de una manera que no distingue entre mayúsculas y minúsculas en C#.

Cree una función de contenido que no distinga entre mayúsculas y minúsculas con la función string.IndexOf() en C#

Cuando hablamos de cadenas que no distinguen entre mayúsculas y minúsculas, el primer instinto es pensar en las funciones string.ToUpper() y string.ToLower(). Pero no es un buen enfoque porque muchos caracteres se cambian a letras completamente diferentes en el alfabeto después de estas funciones. Si realmente queremos crear una función de verificación que contenga mayúsculas y minúsculas en C#, tenemos que usar algunos enfoques diferentes.

La función string.IndexOf(string1, StringComparison) se utiliza para obtener la primera aparición del parámetro string1 dentro de la cadena de acuerdo con el tipo de comparación especificado por el parámetro StringComparison. Devuelve un valor entero que representa el primer índice donde aparece el parámetro string1 dentro de la cadena. El parámetro StringComparison.OrdinalIgnoreCase especifica al compilador que ignore el caso mientras busca el índice. El siguiente ejemplo de código nos muestra cómo podemos crear una función contains(string) que no distingue entre mayúsculas y minúsculas con la función string.IndexOf() y StringComparison.OrdinalIgnoreCase como parámetro en C#.

using System;
using System.Globalization;

namespace case_insensitive_string_contains {
  class Program {
    static void Main(string[] args) {
      string mainString = "This is the Main String";
      string wordToCheck = "string";
      bool result = mainString.IndexOf(wordToCheck, StringComparison.OrdinalIgnoreCase) >= 0;
      if (result == true) {
        Console.WriteLine("{0} is present in {1}", wordToCheck, mainString);
      } else {
        Console.WriteLine("{0} is not present in {1}", wordToCheck, mainString);
      }
    }
  }
}

Producción :

string is present in This is the Main String

Creamos una función contiene que no distingue entre mayúsculas y minúsculas para determinar si la cadena wordToCheck estaba presente en la cadena mainString con la función string.IndexOf() y StringComparison.OrdinalIgnoreCase como parámetro en C#. Almacenamos el resultado de la comparación dentro de una variable booleana result y mostramos la respuesta.

Cree una función Contains que no distinga entre mayúsculas y minúsculas con la clase CultureInfo en C#

La clase CultureInfo contiene información sobre diferentes culturas como el nombre, el estilo de escritura, el tipo de calendario utilizado y mucho más. La función CultureInfo.CompareInfo.IndexOf() se utiliza para determinar el índice de la primera aparición de una cadena dentro de la otra cadena de la misma cultura. Podemos usar CompareOptions.IgnoreCase como parámetro para ignorar el caso mientras buscamos el índice. El siguiente ejemplo de código nos muestra cómo podemos crear una función contains(string) que no distingue entre mayúsculas y minúsculas con la función CultureInfo.CompareInfo.IndexOf() y CompareOptions.IgnoreCase como parámetro en C#.

using System;
using System.Globalization;

namespace case_insensitive_string_contains {
  class Program {
    static void Main(string[] args) {
      string mainString = "This is the Main String";
      string wordToCheck = "string";
      CultureInfo culture = new CultureInfo("");
      bool result =
          culture.CompareInfo.IndexOf(mainString, wordToCheck, CompareOptions.IgnoreCase) >= 0;
      if (result == true) {
        Console.WriteLine("{0} is present in {1}", wordToCheck, mainString);
      } else {
        Console.WriteLine("{0} is not present in {1}", wordToCheck, mainString);
      }
    }
  }
}

Producción :

string is present in This is the Main String

Creamos una función contiene que no distingue entre mayúsculas y minúsculas para determinar si la cadena wordToCheck estaba presente en la cadena mainString con la función CultureInfo.CompareInfo.IndexOf() y CompareOptions.IgnoreCase como parámetro en C#. Almacenamos el resultado de la comparación dentro de una variable booleana result y mostramos la respuesta.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Artículo relacionado - Csharp String