본문 바로가기
프로그래밍/c#

c# LINQ?? LINQ의 특징과 예제

by 지나팩 2024. 4. 16.

LINQ (Language Integrated Query)는 C#과 같은 .NET 언어에서 데이터 소스에 대해 쿼리를 수행할 수 있도록 하는 프로그래밍 모델입니다. LINQ는 다양한 데이터 소스 (예: 배열, 컬렉션, XML, 데이터베이스)에 대해 일관된 쿼리 경험을 제공합니다. LINQ를 사용하면 쿼리를 읽기 쉬운 방식으로 작성할 수 있으며, 컴파일 타임 검사와 자동 완성 같은 IDE 기능의 이점을 누릴 수 있습니다.

 

여기서 쿼리는 데이터를 검색하고 제어하기 위해 데이터베이스나 정보 시스템에 요청하는 명령어라고 보시면 됩니다. 여러 쿼리 언어들이 있는데 LINQ 역시 이런 쿼리 언어들 중 하나입니다. 쿼리를 통해 데이터베이스나 다른 정보 시스템과 상호작용하면서, 필요한 정보를 효율적으로 추출하고 조작할 수 있습니다.

 

LINQ의 주요 특징

  1. 통합된 쿼리 언어: SQL과 유사하게, LINQ는 C#이나 VB.NET 코드 내에서 직접 데이터를 쿼리할 수 있게 해줍니다.
  2. 강력한 필터링, 정렬 및 그룹화: 데이터를 필터링, 정렬, 그룹화하는 강력한 기능을 제공합니다.
  3. 컬렉션, SQL, XML 등 다양한 데이터 소스 지원: 다양한 유형의 데이터 소스에 대해 동일한 쿼리를 사용할 수 있습니다.

LINQ 쿼리의 기본 구조

LINQ 쿼리는 일반적으로 다음과 같은 구조를 갖습니다:

  1. 데이터 소스 정의
  2. 쿼리 생성: 쿼리 표현식을 사용하거나, 확장 메서드를 통한 방식
  3. 쿼리 실행: 쿼리를 실행하여 결과를 가져오거나 변환

 

배열 예제를 통해 더 알아보도록 합시다.

 

위의 내용을 좀 더 간추려서 표현할 수 있습니다. 람다 표현식을 활용하면 됩니다.

 

https://play.google.com/store/apps/details?id=com.goldenegg

 

골든 에그 - Google Play 앱

수박 게임류의 머지 게임입니다.

play.google.com

LINQ와 람다 표현식

람다 표현식은 LINQ 쿼리를 더 간결하게 만들어 주는 중요한 요소입니다. 확장 메서드를 사용한 LINQ 쿼리는 다음과 같이 작성할 수 있습니다.

 

간결하게 코드가 줄어든 것을 확인할 수 있습니다.

 


리스트와 함께 LINQ를 사용하는 예제를 통해, 리스트에서 데이터를 조회하고 변환하는 방법을 살펴보겠습니다. 여기서는 간단한 Person 객체 리스트를 만들고, 특정 조건에 따라 데이터를 필터링하고 정렬하는 방법을 설명하겠습니다.

  • where 절은 조건을 만족하는 요소들을 필터링합니다. 여기서는 나이가 30세 이상인 사람들을 필터링합니다.
  • orderby 절은 주어진 기준에 따라 결과를 정렬합니다. 이 예제에서는 나이에 따라 오름차순으로 정렬합니다.
  • select 절은 쿼리의 결과로 반환할 요소를 지정합니다. 이 경우, Person 객체 자체를 반환합니다.

이렇게 LINQ를 사용하면 코드가 매우 읽기 쉽고, 데이터 처리 로직을 명확하게 표현할 수 있습니다. 또한, 람다 표현식과 함께 사용된 LINQ 확장 메서드는 보다 간결하게 같은 작업을 수행할 수 있게 해줍니다.

댓글