Jeśli kiedykolwiek jesteś ciekawy różnic w metodach BCL, Reflector jest twoim przyjacielem :-)
Przestrzegam tych wytycznych:
Dopasowanie ścisłe: EDYCJA: Wcześniej zawsze używałem operatora == na zasadzie, że wewnątrz Equals (ciąg, ciąg) operator obiektu == służy do porównywania odniesień do obiektu, ale wydaje się, że strA.Equals (strB) wciąż wynosi 1-11% ogólnie szybciej niż string.Equals (strA, strB), strA == strB i string.CompareOrdinal (strA, strB). Testowałem w pętli za pomocą StopWatch zarówno dla wewnętrznych, jak i nie internowanych wartości łańcuchów, z tymi samymi / różnymi długościami łańcuchów i różnymi rozmiarami (1B do 5 MB).
strA.Equals(strB)
Dopasowanie czytelne dla człowieka (kultury zachodnie, bez rozróżniania wielkości liter):
string.Compare(strA, strB, StringComparison.OrdinalIgnoreCase) == 0
Dopasowanie czytelne dla człowieka (Wszystkie inne kultury, niewrażliwa wielkość liter / akcent / kana / itd. Zdefiniowane przez CultureInfo):
string.Compare(strA, strB, myCultureInfo) == 0
Dopasowanie czytelne dla człowieka z niestandardowymi regułami (Wszystkie inne kultury):
CompareOptions compareOptions = CompareOptions.IgnoreCase
| CompareOptions.IgnoreWidth
| CompareOptions.IgnoreNonSpace;
string.Compare(strA, strB, CultureInfo.CurrentCulture, compareOptions) == 0