简化 LINQ 表达式
此重构适用于:
- C#
功能: 用于 Enumerable.Single()
的 SomeEnumerable.Single(<LambdaExpression>)
的 SomeEnumerableType.Where(<LambdaExpression>).Single()
重构实例,以及以下 Enumerable 方法:SingleOrDefault()
、Last()
、LastOrDefault()
、Any()
、Count()
、First()
和 FirstOrDefault()
。
使用时机:方法调用 Single()
、SingleOrDefault()
等的所有实例都不具有任何参数,并且前面有一个 Where()
表达式。 Where()
表达式的输入不能构造为表达式树。
原因:删除对 .Where()
方法的 Enumerable 的不必要的调用可提高可读性,在某些情况下还可提高性能,请参阅“备注”。
操作说明
将光标置于 Visual Basic 的
SomeEnumerableType.Where(<LambdaExpression>).Single()
实例中。按 (Ctrl+.) 触发“快速操作和重构”菜单。
选择“简化 LINQ 表达式”
注解
在某些情况下,此重构可能会降低性能。 在这种情况下,对 List<T>
和 T[]
执行的 LINQ 操作不会优化,从而导致性能下降。
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈