-
C# foreach 루프를 LINQ로 변환하는 아주 쉬운 방법닷넷/C# 2020. 10. 16. 15:41반응형
내용: IEnumerable을 사용하는 foreach 루프를 LINQ 쿼리 또는 LINQ 호출 양식(LINQ 메서드라고도 함)으로 쉽게 변환할 수 있습니다.
시기: IEnumerable을 사용하는 foreach 루프가 있고 이 루프를 LINQ 쿼리로 읽으려고 합니다.
이유: foreach 루프가 아닌 LINQ 구문을 사용하고 싶습니다. LINQ를 사용하면 쿼리가 C#의 고급 언어 구문이 됩니다. LINQ는 파일의 코드양을 줄이고, 코드를 읽기 쉽게 하며, 다른 데이터 소스가 유사한 쿼리 식 패턴을 갖도록 할 수 있습니다.
참고
LINQ 구문은 일반적으로 foreach 루프보다 효율이 떨어집니다. LINQ를 사용하면 코드의 가독성은 좋아지는 대신 성능이 떨어질 수 있다는 점을 알고 있는 것이 좋습니다.
foreach 루프를 LINQ 리팩터링으로 변환
-
커서를 foreach 키워드에 놓습니다.
-
줄의 임의 위치에서 Ctrl+ . 를 눌러 빠른 작업 및 리팩터링 메뉴를 트리거합니다.
(혹은 foreach 영역을 선택하고, 오른쪽 마우스로 클릭하고, 빠른 작업 및 리팩터링 클릭)
-
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; } } }
출처: https://docs.microsoft.com/ko-kr/visualstudio/ide/reference/convert-foreach-linq?view=vs-2019
반응형'닷넷 > C#' 카테고리의 다른 글
C# 네이버 지도 API(AI Naver-Directions 5)를 이용해서 거리 구하기 (0) 2021.05.13 C# 문자열을 문장으로 나누기 (Split('')할 때 'string'에서 'char'(으)로 변환할 수 없습니다. 해결 방법) (0) 2020.11.11 C# 시간 계산 (DateTime Add함수 월, 일, 시, 분 더하기 빼기) (0) 2020.09.11 C# 텍스트파일 읽기 응용편: 텍스트파일에서 해당 문자가 있는지 확인하기 (0) 2020.03.29 C# 네이버 블로그 MetaWeblog API로 글 작성하기 (with XML-RPC) (0) 2020.03.22 -