コードインスペクション:セットで意図しない線形探索の可能性がある
このインスペクションは、 HashSet<T> や ISet<T> などのセット型に対して明示的な比較子を指定して Contains を呼び出すことを報告します。 この呼び出しは LINQ を経由するため、高速なセット検索を線形検索に変換できます。
サンプル
using System;
using System.Collections.Generic;
using System.Linq;
var set = new HashSet<string>();
Console.WriteLine(set.Contains("value", StringComparer.OrdinalIgnoreCase));
using System;
using System.Collections.Generic;
var set = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
Console.WriteLine(set.Contains("value"));
修正方法
インスペクションエラーに対する専用の迅速な解決策はありません。 一般的な解決策としては、必要な比較子を使用してセットを作成するか、セットにすでに正しい比較子がある場合は通常のインスタンス Contains 呼び出しを使用することです。
2026 年 6 月 12 日