반응형
1. LINQ란 ?
LINQ( Language Integrated Query ) 로 C#에서 데이터를 쿼리하고 조작할 수 있도록 하는 기능입니다. 데이터베이스, 컬렉션, XML 등 다양한 소스를 일관된 방식으로 처리할 수 있게 합니다. 또한 LINQ는 간결한 코드 작성과 높은 가독성을 제공하며 데이터 조작을 더 쉽고 직관적으로 만듭니다.
2. LINQ의 구성요소
- Query Syntax : SQL과 유사한 방식으로 데이터를 쿼리하는 구조적 문법입니다.
- Method Syntax : 확장 메서드와 람다 표현식을 사용하는 방식입니다.
- Data Source : LINQ는 배열, 리스트, XML, 데이터베이스 등의 다양한 소스에서 데이터를 쿼리할 수 있습니다.
3. LINQ 기본 사용법
1) Query Syntax 사용법
int[] numbers = { 1, 2, 3, 4, 5, 6 };
// 짝수만 필터링
var evenNumbers = from num in numbers
where num % 2 == 0
select num;
foreach (var num in evenNumbers)
{
Console.WriteLine(num);
}
2) Method Syntax 사용법
int[] numbers = { 1, 2, 3, 4, 5, 6 };
// 짝수만 필터링
var evenNumbers = numbers.Where(num => num % 2 == 0);
foreach (var num in evenNumbers)
{
Console.WriteLine(num);
}
4. LINQ의 주요 연산자
1) Filtering (필터링) : 데이터를 조건에 따라 필터링
- where : 조건에 맞는 데이터를 필터링
var filteredData = data.Where(d => d.Age > 18);
2) Projection (투영) : 데이터 변환
- Select : 각 요소를 변환하여 새로운 결과 생성
var names = data.Select(d => d.Name);
3) Sorting (정렬) : 데이터를 정렬
- OrderBy, OrderByDescending
var sortedData = data.OrderBy(d => d.Name);
4) Grouping (그룹) : 데이터를 그룹으로 묶기
- GroupBy
var groupedData = data.GroupBy(d => d.Category);
5) Aggregation (집계)
- Sum, Average, Count, max, Min
var total = data.Sum(d => d.Price);
5. LINQ 활용
1) 리스트 필터링과 정렬
List<string> names = new List<string> { "John", "Jane", "Tom", "Anna" };
// 'J'로 시작하는 이름 필터링 후 정렬
var filteredNames = names
.Where(name => name.StartsWith("J"))
.OrderBy(name => name);
foreach (var name in filteredNames)
{
Console.WriteLine(name);
}
2) 데이터 집계
int[] scores = { 90, 70, 50, 80, 100 };
// 평균 점수 계산
double averageScore = scores.Average();
Console.WriteLine($"평균 점수: {averageScore}");
3) 그룹화
var products = new List<Product>
{
new Product { Name = "Apple", Category = "Fruit" },
new Product { Name = "Carrot", Category = "Vegetable" },
new Product { Name = "Banana", Category = "Fruit" }
};
// 카테고리별 그룹화
var groupedProducts = products.GroupBy(p => p.Category);
foreach (var group in groupedProducts)
{
Console.WriteLine($"Category: {group.Key}");
foreach (var product in group)
{
Console.WriteLine($" - {product.Name}");
}
}
반응형
'프로그래밍' 카테고리의 다른 글
C# 디자인 패턴 : 싱글톤 패턴과 팩토리 패턴 (Singleton & Factory Pattern) (2) | 2024.12.03 |
---|---|
HTML에서 자주 사용되는 태그 정의 및 사용법(div, span, a, p, h, ul, ol, li, img, form, table, input) (2) | 2024.12.02 |
[C# WPF] WVVM 디자인 패턴 (2) | 2024.11.27 |
Oracle 불필요한 문자 제거, REGEXP_REPLACE 사용법 (3) | 2024.11.25 |
[Oracle] SDO_GEOMETRY (2) | 2024.11.22 |