406 votes

Comparaison de deux chaînes, indépendamment de la casse en c#

<blockquote> <p><strong>Doublon possible :</strong><br> <a href="http://stackoverflow.com/questions/6120154/what-is-difference-between-different-string-compare-methods">Quelle est la différence entre les méthodes de comparaison de chaînes différentes</a> </p> <p>Lequel des deux est plus efficace ? (Ou peut-être est il une troisième option c’est encore mieux) ?</p><pre><code></code></pre><p>OU</p><pre><code></code></pre><p>?</p></blockquote>

362voto

Sven Points 10540

Si vous êtes à la recherche d’efficacité, utilisez ceci :

Des comparaisons ordinales peuvent être nettement plus rapides que les comparaisons sensibles à la culture.

``peut être la meilleure option si vous faites beaucoup de comparaisons effectuées sur la même chaîne, cependant.

Comme pour toute optimisation des performances : mesurer, puis décider !

212voto

Frederik Gheysels Points 36354

L’une est la bonne et mon humble avis celle plus efficace, puisque la deuxième « solution » instancie une nouvelle instance de string.

46voto

Marc Gravell Points 482669

L' .ToLowerCase version n'est pas va être plus rapide, mais il implique un supplément de l'attribution des chaînes (qui doit ensuite être collectées), etc.

Personnellement, j'utiliserais

string.Equals(val, "astringvalue",  StringComparison.OrdinalIgnoreCase)

cela évite tous les problèmes de la culture des chaînes sensibles, mais en conséquence, il évite tous les problèmes de la culture des chaînes sensibles. Seulement, vous savez si c'est OK dans votre contexte.

À l'aide de l' string.Equals méthode statique évite tous les problèmes avec val être null.

12voto

Jamie Dixon Points 23891

Ma réponse générale à ce genre de question sur « l’efficacité » est presque toujours, quelle que soit version du code est plus lisible, est le plus efficace.

Cela étant dit, je pense que `` est assez compréhensible en un coup de œil par la plupart des gens.

L’efficience, que je veux parler n’est pas nécessairement dans l’exécution du code, mais plutôt dans la maintanance et généralement la lisibilité du code en question.

8voto

spender Points 51307

Je me permets que le plus sûr est d’utiliser `` pour militer contre la possibilité que val est `` .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X