Maison >développement back-end >C++ >Comment effectuer correctement des comparaisons de chaînes insensibles à la casse en C# ?

Comment effectuer correctement des comparaisons de chaînes insensibles à la casse en C# ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-19 12:46:09191parcourir

How to Perform Case-Insensitive String Comparisons Correctly in C#?

Comparaison de chaînes insensibles à la casse en C#

Lorsque vous effectuez des comparaisons de chaînes en C#, vous devez généralement ignorer la casse. Bien que vous puissiez initialement envisager d'utiliser la méthode StringComparison.OrdinalIgnoreCase avec Equals, cela peut conduire à des résultats inattendus.

Dans l'exemple de code suivant :

<code class="language-csharp">drUser["Enrolled"] = 
      (enrolledUsers.FindIndex(x => x.Username.Equals((string)drUser["Username"], 
                                 StringComparison.OrdinalIgnoreCase)));</code>

Le problème est d'utiliser la méthode Equals avec une expression lambda. L'expression lambda attend une expression booléenne, mais la méthode Equals renvoie void.

Dans .NET Framework 4 et supérieur, il est recommandé d'utiliser la méthode String.Compare combinée avec StringComparison.OrdinalIgnoreCase pour une comparaison de chaînes insensible à la casse, comme indiqué ci-dessous :

<code class="language-csharp">String.Compare(x.Username, (string)drUser["Username"], 
                  StringComparison.OrdinalIgnoreCase) == 0</code>

Alternativement, pour rendre le code plus lisible et moins sujet aux erreurs, vous pouvez utiliser la méthode String.Equals, comme ceci :

<code class="language-csharp">String.Equals(x.Username, (string)drUser["Username"], 
                   StringComparison.OrdinalIgnoreCase) </code>

Ces méthodes garantissent que les comparaisons de chaînes sont effectuées sans tenir compte de la casse, fournissant ainsi des résultats précis.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn