프로그래밍/C#

[C#] LINQ 쿼리 구문 연산자와 사용법

흔한티벳여우 2023. 6. 9. 13:52
반응형

안녕하세요, 오늘은 C#의 LINQ(Language Integrated Query) 쿼리 구문 연산자에 대해 알아보려고 합니다. LINQ는 데이터를 조회하고 조작하는 강력한 기능을 제공하는 C#의 주요 기능 중 하나입니다. LINQ 쿼리 구문은 SQL과 유사한 구조를 가지며, 다음과 같은 주요 연산자를 사용합니다:


1. from 연산자

from 연산자는 데이터 소스와 범위 변수를 지정합니다. 쿼리 구문에서는 항상 첫 번째 절로 사용되어야 합니다.

List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
var query = from num in numbers
            select num;

2. where 연산자

where 연산자는 필터링 조건을 지정합니다. where 절에 지정된 조건을 만족하는 요소만 결과에 포함됩니다.

var query = from num in numbers
            where num > 2
            select num;

where 절은 여러 조건을 결합할 수 있습니다:

var query = from num in numbers
            where num > 2 && num < 5
            select num;

3. select 연산자

select 연산자는 반환할 요소를 지정합니다. select 절은 쿼리 구문에서 항상 마지막 절로 사용되어야 합니다.

var query = from num in numbers
            select num * 2;

select 절은 새로운 형태의 결과를 생성할 수 있습니다:

var query = from num in numbers
            select new { Number = num, Square = num * num };

4. orderby 연산자

orderby 연산자는 결과를 정렬하는 기준을 지정합니다. ascending(오름차순) 또는 descending(내림차순) 키워드를 사용하여 정렬 순서를 지정할 수 있습니다.

var query = from num in numbers
            orderby num descending
            select num;

여러 필드를 기준으로 정렬할 수도 있습니다:

List<string> fruits = new List<string> { "apple", "banana", "cherry", "date", "elderberry" };
var query = from fruit in fruits
            orderby fruit.Length, fruit
            select fruit;

5. group 연산자

group 연산자는 결과를 그룹화하는 기준을 지정합니다. group...by 절을 사용하여 특정 키에 따라 요소를 그룹화할 수 있습니다.

var query = from num innumbers
            group num by num % 2 into g
            select new { Key = g.Key, Numbers = g };

6. join 연산자

join 연산자는 두 데이터 소스를 결합합니다. join...on 절을 사용하여 두 데이터 소스의 요소를 결합할 수 있습니다.

List<int> numbers1 = new List<int> { 1, 2, 3 };
List<int> numbers2 = new List<int> { 2, 3, 4 };
var query = from num1 in numbers1
            join num2 in numbers2 on num1 equals num2
            select new { num1, num2 };

7. let 연산자

let 연산자는 쿼리 중간 결과를 저장하는 임시 변수를 지정합니다. let 절을 사용하여 중간 계산 결과를 저장하고 이를 쿼리의 나머지 부분에서 재사용할 수 있습니다.

var query = from num in numbers
            let square = num * num
            where square > 10
            select new { num, square };

8. into 연산자

into 연산자는 쿼리 연속성을 만듭니다. group...by 또는 join...on 절 뒤에 into를 사용하여 그룹화 또는 결합 결과를 새로운 범위 변수에 할당할 수 있습니다.

var query = from num in numbers
            group num by num % 2 into g
            where g.Count() > 2
            select new { Key = g.Key, Count = g.Count() };


이상으로 C#의 LINQ 쿼리 구문 연산자에 대해 알아보았습니다. 이 연산자들은 쿼리 구문을 이용하여 데이터를 조회하고 조작하는 데 사용됩니다. 이들을 조합하여 복잡한 쿼리를 작성할 수 있습니다.

반응형