BCLメソッドの違いに興味があるなら、Reflectorがお勧めです:-)
私はこれらのガイドラインに従います:
完全一致: 編集:以前は常に==演算子を使用していましたが、Equals(string、string)の内部ではオブジェクト==演算子を使用してオブジェクト参照を比較していますが、strA.Equals(strB)は依然として1-11%のようですstring.Equals(strA、strB)、strA == strB、およびstring.CompareOrdinal(strA、strB)よりも全体的に高速です。インターンされた/インターンされていない両方の文字列値、同じ/異なる文字列長、およびさまざまなサイズ(1B〜5MB)のストップウォッチでループテストを行いました。
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