共用方式為


簡化 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() 方法的不必要呼叫可提高可讀性,並在某些情況下提高效能,請參閱備註。

操作方式

  1. 將游標放在 Visual Studio 中的 SomeEnumerableType.Where(<LambdaExpression>).Single() 實例內。

  2. 按下 Ctrl+.,以觸發 [快速動作與重構] 功能表。

  3. 選取 [簡化 LINQ 運算式]

    Convert typeof to nameof

備註

在某些情況下,此重構可能會降低效能。 在這種情況下,List<T>T[] 上的 LINQ 作業並未優化,因而導致效能變差。

另請參閱