LINQ란 Language - INtegreated Quary의 약자로 .NET 프레임워크에서 제공하는 쿼리언어의 확장이에요.
배열, 컬렉션, XML, 데이터베이스 등의 데이터소스에서 데이터를 조작하는데 사용해요.
var result = from 변수 in 데이터소스
[where 조건식]
[orderby 정렬식 [, 정렬식...]]
[select 식];
LINQ는 다음과 같이 사용하는데
var키워드는 결과 값의 자료형을 자동으로 추론해요.from 절에서는 데이터 소스를 지정해요where절은 선택적으로 사용하며, 조건식을 지정하여 데이터를 필터링해요.orderby절은 선택적으로 사용하며, 정렬 방식을 지정해요.select절은 선택적으로 사용하며, 조회할 데이터를 지정해요.SQL과 유사해서 SQL에 익숙하다면, 쉽게 접근할 수 있어요.
LINQ를 사용하면 코드의 재사용성이 향상되고 컴파일 시간에 타입을 체크하기 때문에 개발 초기에 오류를 포착하여 런타임 예외를 줄이는데 도움이 되지만 복잡한 쿼리는 작성할 수 없고, 잘못 작성했을 경우에 다른 반복문을 사용하는 것보다 성능이 저하될 수 있다는 단점이 있어요.
// 데이터 소스 정의 (컬렉션)
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
// 쿼리 작성 (선언적인 구문)
var evenNumbers = from num in numbers
where num % 2 == 0
select num;
// 쿼리 실행 및 결과 처리
foreach (var num in evenNumbers)
{
Console.WriteLine(num);
}
evenNumbers에 numbers 리스트의 데이터를 받아와 짝수인 숫자들을 넣어주는 쿼리입니다.