Insensible à la casse contient une fonction de chaîne en C#

Muhammad Maisam Abbas 16 février 2024
  1. Créer une fonction contenant insensible à la casse avec la fonction string.IndexOf() en C#
  2. Créer une fonction Contains insensible à la casse avec la classe CultureInfo en C#
Insensible à la casse contient une fonction de chaîne en C#

Ce didacticiel présentera des méthodes pour créer une fonction qui vérifie si une chaîne contient une autre chaîne de manière insensible à la casse en C#.

Créer une fonction contenant insensible à la casse avec la fonction string.IndexOf() en C#

Quand on parle de chaînes insensibles à la casse, le premier instinct est de penser aux fonctions string.ToUpper() et string.ToLower(). Mais ce n’est pas une bonne approche car de nombreux caractères sont remplacés par des lettres complètement différentes dans l’alphabet après ces fonctions. Si nous voulons vraiment créer une fonction de vérification contenant insensible à la casse en C#, nous devons utiliser des approches différentes.

La fonction string.IndexOf(string1, StringComparison) permet de récupérer la première occurrence du paramètre string1 à l’intérieur de la string selon le type de comparaison spécifié par le paramètre StringComparison. Il renvoie une valeur entière qui représente le premier index où le paramètre string1 apparaît à l’intérieur de la string. Le paramètre StringComparison.OrdinalIgnoreCase spécifie au compilateur d’ignorer la casse lors de la recherche de l’index. L’exemple de code suivant nous montre comment créer une fonction contains(string) insensible à la casse avec la fonction string.IndexOf() et StringComparison.OrdinalIgnoreCase comme paramètre 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);
      }
    }
  }
}

Production:

string is present in This is the Main String

Nous avons créé une fonction contient insensible à la casse pour déterminer si la chaîne wordToCheck était présente dans la chaîne mainString avec la fonction string.IndexOf() et StringComparison.OrdinalIgnoreCase comme paramètre en C#. Nous avons stocké le résultat de la comparaison dans une variable booléenne result et affiché la réponse.

Créer une fonction Contains insensible à la casse avec la classe CultureInfo en C#

La classe CultureInfo contient des informations sur différentes cultures comme le nom, le style d’écriture, le type de calendrier utilisé, et bien plus encore. La fonction CultureInfo.CompareInfo.IndexOf() permet de déterminer l’index de la première occurrence d’une chaîne à l’intérieur de l’autre chaîne de la même culture. Nous pouvons utiliser CompareOptions.IgnoreCase comme paramètre pour ignorer la casse lors de la recherche de l’index. L’exemple de code suivant nous montre comment créer une fonction contains(string) insensible à la casse avec la fonction CultureInfo.CompareInfo.IndexOf() et CompareOptions.IgnoreCase comme paramètre 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);
      }
    }
  }
}

Production:

string is present in This is the Main String

Nous avons créé une fonction contient insensible à la casse pour déterminer si la chaîne wordToCheck était présente dans la chaîne mainString avec la fonction CultureInfo.CompareInfo.IndexOf() et CompareOptions.IgnoreCase comme paramètre en C#. Nous avons stocké le résultat de la comparaison dans une variable booléenne result et affiché la réponse.

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

Article connexe - Csharp String