web-dev-qa-db-fra.com

Quelle est la différence entre les différentes méthodes de comparaison de chaînes

Duplicata possible:
Différences dans les méthodes de comparaison de chaînes en C #

Dans .NET, il existe de nombreuses méthodes de comparaison de chaînes, je veux juste confirmer laquelle est la meilleure à utiliser compte tenu des performances.

string.Equals()

string.Compare()

string.CompareTo()

string.CompareOrdinal()

string.ReferenceEquals()

if (str1 == str2)
36
Pankaj Agarwal

Extrait de msdn

string.Equals

Détermine si cette instance et un objet spécifié, qui doit également être un objet String, ont la même valeur.

string.Compare Compare deux objets String spécifiés et renvoie un entier qui indique leur position relative dans l'ordre de tri.

string.CompareTo Compare cette instance à un objet ou à une chaîne spécifié et renvoie un entier qui indique si cette instance précède, suit, ou apparaît dans la même position dans l'ordre de tri que l'objet ou la chaîne spécifié.

string.CompareOrdinal Compare deux objets String spécifiés en évaluant les valeurs numériques des objets Char correspondants dans chaque chaîne.

Opérateurs d'égalité de chaîne Les opérateurs d'égalité de chaîne prédéfinis sont:

opérateur booléen == (chaîne x, chaîne y); opérateur booléen! = (chaîne x, chaîne y); Deux valeurs de chaîne sont considérées comme égales lorsque l'une des conditions suivantes est vraie:

Les deux valeurs sont nulles. Les deux valeurs sont des références non nulles à des instances de chaîne qui ont des longueurs et des caractères identiques à chaque position de caractère. Les opérateurs d'égalité de chaîne comparent les valeurs de chaîne plutôt que les références de chaîne. Lorsque deux instances de chaîne distinctes contiennent exactement la même séquence de caractères, les valeurs des chaînes sont égales, mais les références sont différentes. Comme décrit dans la Section 7.9.6, les opérateurs d'égalité de type de référence peuvent être utilisés pour comparer des références de chaîne au lieu de valeurs de chaîne.

25
crypted