C#で大文字と小文字を区別せずに2つの文字列を比較する [重複] 質問する

C#で大文字と小文字を区別せずに2つの文字列を比較する [重複] 質問する

次の 2 つのうちどちらがより効率的でしょうか? (あるいは、さらに優れた 3 番目のオプションがあるでしょうか?)

string val = "AStringValue";

if (val.Equals("astringvalue", StringComparison.InvariantCultureIgnoreCase))

または

if (val.ToLowerCase() == "astringvalue")

?

ベストアンサー1

効率を重視する場合は、以下を使用してください。

string.Equals(val, "astringvalue", StringComparison.OrdinalIgnoreCase)

順序による比較は、文化を考慮した比較よりも大幅に高速になります。

ToLowerCaseただし、同じ文字列に対して多くの比較を実行する場合は、より良いオプションになる可能性があります。

あらゆるパフォーマンス最適化と同様に、測定してから決定してください。

おすすめ記事