コードインスペクション:foreach ループの一部は LINQ 式に変換できますが、別の 'GetEnumerator' メソッドが使用されます
このインスペクションは、 foreach ループの本体が部分的にのみ LINQ スタイルのシーケンス操作に変換でき、その際、元のループとは異なる GetEnumerator メソッドが使用されることを報告します。 この警告は、ループ全体をクエリに変換する警告よりも慎重です。なぜなら、ループの一部しか書き換えられないためです。
サンプル
foreach (var item in source)
{
if (item.IsVisible)
yield return item;
Log(item);
}
foreach (var item in source.Where(item => item.IsVisible))
{
yield return item;
Log(item);
}
クイックフィックス
ループ本体のうち変換可能な部分をクエリ操作に変換し、ループの残りの部分は明示的なままにします。
2026 年 6 月 12 日