foreach 루프를 LINQ로 변환
이 문서의 내용
이 리팩터링은 다음에 적용됩니다.
- C#
내용: IEnumerable을 사용하는 foreach 루프를 LINQ 쿼리 또는 LINQ 호출 양식(LINQ 메서드라고도 함)으로 쉽게 변환할 수 있습니다.
시기: IEnumerable을 사용하는 foreach 루프가 있으며 해당 루프를 LINQ 쿼리로 읽으려고 합니다.
이유: foreach 루프 대신 LINQ 구문을 사용하는 것이 좋습니다. LINQ를 사용하면 쿼리가 C#의 고급 언어 구문이 됩니다. LINQ는 파일의 코드양을 줄이고, 코드를 읽기 쉽게 하며, 다른 데이터 소스가 유사한 쿼리 식 패턴을 갖도록 할 수 있습니다.
참고
LINQ 구문은 일반적으로 foreach 루프보다 효율이 떨어집니다. LINQ를 사용하면 코드의 가독성은 좋아지는 대신 성능이 떨어질 수 있다는 점을 알고 있는 것이 좋습니다.
커서를
foreach
키워드에 놓습니다.Ctrl 키를 누릅니다+. 빠른 작업 및 리팩터링 메뉴를 트리거합니다.
LINQ로 변환 또는 Linq(호출 양식)로 변환을 선택합니다.
using System.Collections.Generic;
public class Class1
{
public void MyMethod()
{
var greetings = new List<string>()
{ "hi", "yo", "hello", "howdy" };
IEnumerable<string> enumerable()
{
foreach (var greet in greetings)
{
if (greet.Length < 3)
{
yield return greet;
}
}
yield break;
}
}
}