LINQ 식 간소화
이 리팩터링은 다음에 적용됩니다.
- C#
내용: 다음에 대한 Enumerable.Single()
리팩터 인스턴스 SomeEnumerableType.Where(<LambdaExpression>).Single()
SomeEnumerable.Single(<LambdaExpression>)
와 다음 열거 가능한 메서드: SingleOrDefault()
,Last()
, LastOrDefault()
, First()
Any()
Count()
, 및 .FirstOrDefault()
시기:Single()
, SingleOrDefault()
등의 메서드 호출이 인수를 포함하지 않으며 Where()
식 뒤에 오는 모든 인스턴스. Where()
식에 대한 입력은 식 트리로 생성될 수 없습니다.
이유: .Where()
메서드에 대한 불필요한 Enumerable 호출을 제거하면 가독성이 향상되고 일부 경우에는 성능도 향상됩니다. 설명을 참조하세요.
방법
Visual Studio에서
SomeEnumerableType.Where(<LambdaExpression>).Single()
인스턴스 내에 커서를 놓습니다.Ctrl 키를 누릅니다+. 빠른 작업 및 리팩터링 메뉴를 트리거합니다.
LINQ 식 간소화를 선택합니다.
설명
경우에 따라 이 리팩터링으로 성능이 저하될 수 있습니다. List<T>
및 T[]
의 LINQ 작업은 이 경우에 최적화된 작업이 아니며 성능이 저하됩니다.