с .Equals вы также получаете параметры StringComparison. очень удобен для игнорирования дела и прочего.
кстати, это будет ложно
string a = "myString";
string b = "myString";
return a==b
Поскольку == сравнивает значения a и b (которые являются указателями), это будет оцениваться как истинное, только если указатели указывают на один и тот же объект в памяти. .Equals разыменовывает указатели и сравнивает значения, хранящиеся в указателях. Здесь a.quals (b) будет истинным.
и если вы измените b на:
b = "MYSTRING";
тогда a.Equals (b) ложно, но
a.Equals(b, StringComparison.OrdinalIgnoreCase)
было бы правдой
a.CompareTo (b) вызывает функцию CompareTo строки, которая сравнивает значения в указателях и возвращает ‹0, если значение, хранящееся в a, меньше значения, хранящегося в b, возвращает 0, если a.Equals (b) истинно, и > 0 в противном случае. Тем не менее, это чувствительно к регистру, я думаю, что у CompareTo есть варианты игнорировать регистр и тому подобное, но сейчас нет времени смотреть. Как уже заявляли другие, это будет сделано для сортировки. Такое сравнение на равенство приведет к ненужным накладным расходам.
Я уверен, что опускаю материал, но я думаю, что этого должно быть достаточно, чтобы начать экспериментировать, если вам нужно больше деталей.
person
David
schedule
25.03.2010