[C#] LINQ (1)

Flaming Bun·2025년 7월 29일

C#

목록 보기
33/35

참고 사이트 : https://learn.microsoft.com/ko-kr/dotnet/csharp/linq/

🔥 LINQ

LINQ(Language-Integrated Query)란 C#에 쿼리 기능을 통합한 기술로,

데이터 원본(SQL, XML, 컬렉션 등)에 관계 없이 일관된 구문으로 쿼리를 작성할 수 있게 해준다.

쿼리문은 강한 형식으로 컴파일 시점에 형식 검사가 가능하다.


구문 종류

쿼리 식과 메서드 방식 두 가지가 있으며, 의미나 성능 차이는 없다.

일부 작업(Count, Max 등)은 메서드 구문에서만 표현 가능하다.


쿼리 식

쿼리 식을 사용하여 데이터를 필터링, 정렬, 그룹화 등이 가능하다.

from, where, select 등의 키워드를 사용해 가독성이 높은 코드를 작성할 수 있다.

쿼리는 쿼리 변수를 반복하여 foreach로 실행하기 전까지 실행되지 않는다.

쿼리 식을 사용하여 표현할 수 있는 모든 쿼리는 메서드 방식을 사용해서 표현할 수 있고,

쿼리 식은 컴파일 시에 메서드 구문으로 변환된다.


예시

int[] scores = [97, 92, 81, 60];

var scoreQuery = from score in scores
				where score > 60
                select score;
                
foreach(var i in scoreQuery)
{
	Console.Write(i + " "); // 97, 92, 81
}

메서드 방식

메서드 방식은 메서드 체이닝를 사용해서 데이터를 필터링, 정렬, 그룹화 등을 하는 방식이다.


예시

int[] scores = [97, 92, 81, 60];

var passScore = scores.Where(score => score > 60).OrderByDescending(score => score);

foreach(var score in passScores)
{
	Console.Write(score + " ");
}

0개의 댓글