다음을 통해 공유


LINQ 식 간소화

이 리팩터링은 다음에 적용됩니다.

  • C#

내용: 다음에 대한 Enumerable.Single() 리팩터 인스턴스 SomeEnumerableType.Where(<LambdaExpression>).Single() SomeEnumerable.Single(<LambdaExpression>) 와 다음 열거 가능한 메서드: SingleOrDefault(),Last(), LastOrDefault(), First()Any()Count(), 및 .FirstOrDefault()

시기:Single(), SingleOrDefault() 등의 메서드 호출이 인수를 포함하지 않으며 Where() 식 뒤에 오는 모든 인스턴스. Where() 식에 대한 입력은 식 트리로 생성될 수 없습니다.

이유: .Where() 메서드에 대한 불필요한 Enumerable 호출을 제거하면 가독성이 향상되고 일부 경우에는 성능도 향상됩니다. 설명을 참조하세요.

방법

  1. Visual Studio에서 SomeEnumerableType.Where(<LambdaExpression>).Single() 인스턴스 내에 커서를 놓습니다.

  2. Ctrl 키를 누릅니다+. 빠른 작업 및 리팩터링 메뉴를 트리거합니다.

  3. LINQ 식 간소화를 선택합니다.

    Convert typeof to nameof

설명

경우에 따라 이 리팩터링으로 성능이 저하될 수 있습니다. List<T>T[]의 LINQ 작업은 이 경우에 최적화된 작업이 아니며 성능이 저하됩니다.

참고 항목