JetBrains Rider 2026.1 Help

代码检查: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年 5月 8日