2011-01-19 5 views
15

Duplicar posibles:
C#: Are string.Equals() and == operator really same?comparación de la secuencia: == operador() vs. Iguales()

Para la comparación de cadenas, qué enfoque es mejor (y seguro):

string s1="Sarfaraz"; 
string s2="Nawaz"; 

bool result1 = (s1==s2) ;//approach 1 
bool result2 = s1.Equals(s2) ;//approach 2 

¿O ambos son iguales debajo del capó?

+1

Depende si considera que "perro" y "perro" son la misma palabra, mientras que puede manipular la cadena en su primer acercamiento utilizando String.Equals (S1, S2, StringComparison.CurrentCultureIgnoreCase) puede ser útil y elegante. –

+0

@Ramhound: muy buen punto! – Nawaz

+0

Una advertencia es que si las cadenas son nulas, lanzará una excepción. Por supuesto, si comparas su valor, entonces esperas un valor. –

Respuesta

14

Me gusta Equals() porque la opción StringComparison disponible es muy útil.

Los == y != operadores se basan en el valor , por lo que son seguros de usar, a pesar de que String es un tipo de referencia.

+7

También vale la pena mencionar si 's1' es' null', los resultados serán diferentes. – porges

Cuestiones relacionadas