쿼리 구문을 사용하여 컬렉션 정렬하기
메서드 구문과 쿼리 구문을 사용하여 컬렉션에서 홀수만 가져온 후 내림차순으로 정렬해서 출력하는 예제를 만들어 보겠습니다. 다음 내용을 입력한 후 실행해 보세요.
메서드 구문과 쿼리 구문 비교: LinqQuerySyntax.cs
using System; using System.Collections.Generic; using System.Linq; class LinqQuerySyntax { static void Main() { int[] numbers = { 3, 2, 1, 4, 5 }; //① 메서드 구문 IEnumerable<int> methodSyntax = numbers.Where(n => n % 2 == 1).OrderBy(n => n); foreach (var n in methodSyntax) { Console.WriteLine(n); } //② 쿼리 구문 IEnumerable<int> querySyntax = from num in numbers where num % 2 == 1 orderby num select num; foreach (var n in querySyntax) { Console.WriteLine(n); } } }
실행 결과
1 3 5 1 3 5
①의 메서드 구문을 사용하는 코드와 ②의 쿼리 구문을 사용하는 코드는 형태만 다를 뿐 실행 결과는 동일합니다. 쿼리 구문은 한 줄에 모두 작성해도 되고, 앞 예제처럼 키워드별로 줄 단위로 작성하여 가독성을 높일 수도 있습니다.