代码检查:替换为 OfType<T>().FirstOrDefault()(替换为 OfType<T>().FirstOrDefault(..)).
此检查会报告一个 LINQ 查询,该查询通过 as 转换元素,使用筛选器过滤掉 null ,然后查找第一个符合额外条件的元素。 使用 OfType<T>().FirstOrDefault(...) ,同样的查询更易于阅读。
示例
var first = items.Select(x => x as Person).FirstOrDefault(y => y != null && y.IsActive);
var first = items.OfType<Person>().FirstOrDefault(y => y.IsActive);
快速修复
将 Select(... as T).FirstOrDefault(y => y != null && ...) 模式替换为 OfType<T>().FirstOrDefault(...)。
2026年 5月 8日