簡化 LINQ 運算式
此重構適用於:
- C#
內容: 將 Enumerable.Single()
的 SomeEnumerableType.Where(<LambdaExpression>).Single()
實例重構為 SomeEnumerable.Single(<LambdaExpression>)
,以及下列 Enumerable 方法:SingleOrDefault()
、Last()
、LastOrDefault()
、Any()
、Count()
、First()
和 FirstOrDefault()
。
使用情況: 該方法呼叫 Single()
、SingleOrDefault()
等的所有實例都沒有任何引數,且前面有一個 Where()
運算式。 Where()
運算式的輸入無法建構為運算式樹狀結構。
原因: 移除對 Enumerable 類的 .Where()
方法的不必要呼叫可提高可讀性,並在某些情況下提高效能,請參閱備註。
操作方式
將游標放在 Visual Studio 中的
SomeEnumerableType.Where(<LambdaExpression>).Single()
實例內。按下 Ctrl+.,以觸發 [快速動作與重構] 功能表。
選取 [簡化 LINQ 運算式]
備註
在某些情況下,此重構可能會降低效能。 在這種情況下,List<T>
和 T[]
上的 LINQ 作業並未優化,因而導致效能變差。