代码检查:替换为 OfType<T>().Any()(替换为 OfType<T>().Any(..))
此检查会报告使用 as 类型转换元素、过滤 null ,然后在 Any(...) 内应用额外谓词的 LINQ 查询。 使用 OfType<T>().Any(...) 可以让相同逻辑更易阅读。
示例
bool hasLongName = items.Select(x => x as Person).Any(y => y != null && y.Name.Length > 10);
bool hasLongName = items.OfType<Person>().Any(y => y.Name.Length > 10);
快速修复
将 Select(... as T).Any(y => y != null && ...) 模式替换为 OfType<T>().Any(...)。
2026年 5月 8日