次の方法で共有


LINQ 式の簡略化

このリファクタリングは以下に適用されます。

  • C#

概要:Enumerable.Single() と Enumerable メソッド (SingleOrDefault()Last()LastOrDefault()Any()Count()First()FirstOrDefault()) に対して SomeEnumerableType.Where(<LambdaExpression>).Single() インスタンスを SomeEnumerable.Single(<LambdaExpression>) にリファクタリングします。

条件: メソッドで Single()SingleOrDefault() が呼び出されていて、メソッドに引数がなく、メソッドの前に Where() 式がある、すべてのインスタンス。 Where() 式への入力は式ツリーとして構築できません。

理由:.Where() メソッドの Enumerable への不要な呼び出しを削除することで、読みやすさと、場合によってはパフォーマンスが向上します (注釈を参照してください)。

方法

  1. Visual Basic の SomeEnumerableType.Where(<LambdaExpression>).Single() インスタンスの中にカーソルを置きます。

  2. Ctrl+. キーを押して、[クイック アクションとリファクタリング] メニューをトリガーします。

  3. [LINQ 式の簡略化] を選択します

    Convert typeof to nameof

解説

場合によっては、このリファクタリングによってパフォーマンスが低下することがあります。 この場合、List<T>T[] に対する LINQ 操作は最適化されず、結果的にパフォーマンスが低下します。

関連項目