본문 바로가기

C#/노트

C# LINQ

728x90
반응형

Language Integrated Query의 준말로

 

C#의 다양한 데이터 소스(List, 배열 등등)를 공통된 방식으로 처리할 수 있는 통합 쿼리 기능이다.

 

따라서 LINQ의 문법이나 메소드 등은 다른 데이터 소스에서도 사용 가능하다.

 

LINQ의 특징 중에 하나로 지연 실행이라는 것이 있는데,
정의될 때 계산하는 것이 아닌 계산이 직접 실행되는 시점에서 계산이 실행된다.

제대로 이해하지는 못했지만, 진짜 필요할 때 계산을 실행하는 것으로 성능을 향상시킨다는 아이디어 같다.

 

LINQ에는 다음 두 가지 형태가 있다.

int[] numbers = { 5, 12, 3, 20, 7 };

// 1
var result = numbers.Where(n => n > 10)
                    .OrderBy(n => n);

// 2
var result = from n in numbers
             where n > 10
             orderby n;

// 이때 n은 일종의 임시변수로, 각 리스트의 요소가 순서대로 들어옴
// 미리 정의할 필요는 없다.

 

 

아래는 LINQ 메소드의 예로 앞서 말했듯이 List나 배열 등에도 활용가능한 메소드이다.

더보기

Where();

   필터링, 조건

Select();

   원하는 형태로 변환

OrderBy(); OrderByDescending();

   오름차순 / 내림차순 정렬

GroupBy();

   부여된 키를 기준으로 그룹화

Sum(); Max(); Min(); Average();

Any(); All();

   조건 검사

   각각 or과 and

Take(); First();

   맨 앞에서 몇개 / 맨 앞 한개

반응형

'C# > 노트' 카테고리의 다른 글

C# 배열과 문자열  (0) 2025.12.04
C# 조건문과 반복문  (0) 2025.12.03
C# Hello World!와 입출력  (0) 2025.12.02