可変です。比較パフォーマンスは、入力データ、比較に使用されるカルチャ、大文字と小文字の区別、CompareOptions
. Regex オブジェクトは (Regex
キャッシュ内にない限り) インスタンス化するのにコストがかかるため、1 回限りの比較を頻繁に行う場合は、使用するのにあまり適してIndexOf()
いません。通常、YMMV.
Contains/IndexOf を使用する場合、ユーザー/スレッドが実行されているカルチャによって比較方法が決定されることに注意してください。これは、パフォーマンスに大きな影響を与える可能性があります。すべての文化が同じように速いわけではありません。
インバリアント カルチャーは非常に速いカルチャーです。CompareInfo
を実行するのではなく、 を直接使用するString.IndexOf()
と、さらにいくらか速くなります。
CultureInfo.InvariantCulture.CompareInfo.IndexOf(..)
正しい選択をする自信を持つ唯一の方法は、ベンチマークを行うことです。とはいえ、何メガバイトもの文字列を移動しない限り、誰にとっても重要な違いはありません。ChrisF が以前に言ったように、その場合は読み取り可能/保守可能なコードに焦点を当てます。
正規表現を最大限に活用するための優れた記事:
正規表現のパフォーマンスの最適化