C# 문법 - LINQ

오도독·2024년 5월 3일

내배캠

목록 보기
15/26
post-thumbnail

LINQ란?

LINQ란 Language - INtegreated Quary의 약자로 .NET 프레임워크에서 제공하는 쿼리언어의 확장이에요.
배열, 컬렉션, XML, 데이터베이스 등의 데이터소스에서 데이터를 조작하는데 사용해요.


LINQ의 구조

var result = from 변수 in 데이터소스
             [where 조건식]
             [orderby 정렬식 [, 정렬식...]]
             [select];

LINQ는 다음과 같이 사용하는데

  • var키워드는 결과 값의 자료형을 자동으로 추론해요.
  • from 절에서는 데이터 소스를 지정해요
  • where절은 선택적으로 사용하며, 조건식을 지정하여 데이터를 필터링해요.
  • orderby절은 선택적으로 사용하며, 정렬 방식을 지정해요.
  • select절은 선택적으로 사용하며, 조회할 데이터를 지정해요.

SQL과 유사해서 SQL에 익숙하다면, 쉽게 접근할 수 있어요.


LINQ의 장단점

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 리스트의 데이터를 받아와 짝수인 숫자들을 넣어주는 쿼리입니다.

0개의 댓글