BCL メソッドの違いに興味があるなら、Reflectorはあなたの友達です :-)
私は次のガイドラインに従います。
完全一致: 編集: 以前は常に Equals(string, string) 内でオブジェクト == 演算子を使用してオブジェクト参照を比較するという原則に基づいて == 演算子を使用していましたが、strA.Equals(strB) はまだ 1-11% のようですstring.Equals(strA, strB)、strA == strB、および string.CompareOrdinal(strA, strB) より全体的に高速です。同じ/異なる文字列長で、さまざまなサイズ (1B から 5MB) で、interned/non-interned 文字列値の両方で StopWatch を使用してループ テストを行いました。
strA.Equals(strB)
人間が判読できる一致 (西洋文化、大文字と小文字を区別しない):
string.Compare(strA, strB, StringComparison.OrdinalIgnoreCase) == 0
人間が読める形式の一致 (CultureInfo で定義されたその他のすべてのカルチャ、大文字と小文字、アクセント、カナなどを区別しない):
string.Compare(strA, strB, myCultureInfo) == 0
人間が判読できるカスタム ルールとの一致 (他のすべてのカルチャ):
CompareOptions compareOptions = CompareOptions.IgnoreCase
| CompareOptions.IgnoreWidth
| CompareOptions.IgnoreNonSpace;
string.Compare(strA, strB, CultureInfo.CurrentCulture, compareOptions) == 0