안녕하세요, 오늘은 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 쿼리 구문 연산자에 대해 알아보았습니다. 이 연산자들은 쿼리 구문을 이용하여 데이터를 조회하고 조작하는 데 사용됩니다. 이들을 조합하여 복잡한 쿼리를 작성할 수 있습니다.
'프로그래밍 > C#' 카테고리의 다른 글
[C#] 디자인패턴 - Factory Method Pattern (0) | 2023.08.15 |
---|---|
[C#] 디자인패턴 - Strategy Pattern (0) | 2023.08.15 |
[C#] LINQ의 종류와 예제 (0) | 2023.06.09 |
[C#] Log4net을 이용한 Logger 구현 (0) | 2023.04.18 |
[C#] MessagePack-CSharp을 이용한 고성능 객체 직렬화 및 역직렬화 (0) | 2023.04.14 |