본문 바로가기
Languages/C#

C# LINQ( Language-Integrated Query )

by 반도체는 프로그래밍을 좋아해 2023. 4. 14.
728x90

C# LINQ(언어 인티그레이티드 쿼리)(Language-Integrated Query)은 C# 언어의 확장된 기능 중 하나로, 데이터를 검색, 추출, 정렬 및 필터링할 수 있는 강력한 도구입니다. LINQ를 사용하면 데이터에 대한 쿼리를 작성할 때 일반적인 C# 코드를 사용할 수 있으며, SQL 쿼리 또는 다른 데이터베이스 쿼리 언어를 작성할 때와 같은 새로운 문법을 배울 필요가 없습니다.

LINQ는 객체, 데이터베이스, XML 등 다양한 데이터 소스에서 작동할 수 있으며, 간단한 예제를 통해 LINQ의 기본 개념을 알아보겠습니다.

예를 들어, 이름이 "John"인 사람의 나이를 검색하고 싶다면, LINQ를 사용하여 다음과 같이 작성할 수 있습니다.

List<Person> people = GetPeople();
var age = from person in people
          where person.Name == "John"
          select person.Age;

위 코드에서는 GetPeople() 메서드를 호출하여 people 리스트를 가져오고, where 절을 사용하여 이름이 "John"인 사람만 선택하고, select 절을 사용하여 해당 사람의 나이를 반환합니다.

다른 예시를 보겠습니다.

var result = from x in collection
             where x.Property == "value"
             orderby x.Property2 descending
             select x;

위 코드에서 collection은 데이터 소스입니다. where 절은 조건을 지정하며, orderby 절은 정렬 방법을 지정(descending과 ascending 방식)합니다. select 절은 결과를 반환하는데 사용됩니다.

LINQ는 다양한 데이터 소스에서 사용될 수 있으며, 각각에 따라 다른 메소드와 문법을 사용할 수 있습니다. 예를 들어, 다음은 배열에서 LINQ를 사용하는 예시입니다.

int[] numbers = { 1, 2, 3, 4, 5 };

var result = from n in numbers
             where n % 2 == 0
             select n;

위 코드는 numbers 배열에서 짝수를 검색하는 LINQ 쿼리입니다. where 절은 n이 2로 나누어 떨어지는지를 검사하고, select 절은 결과를 반환합니다.

728x90


이제 예시를 더 자세하게 살펴보겠습니다.

LINQ에서 from, where, select는 쿼리 식의 일부로 사용됩니다. 이들 키워드는 데이터 소스로부터 데이터를 가져와서 원하는 형태로 변환하는 데 사용됩니다. 각 키워드의 기능은 다음과 같습니다. (* 다른 쿼리들도 많아 아래 글을 참고해주세요)

2023.04.14 - [Languages/C#] - C# 다양한 LINQ Query 연산자

 

C# 다양한 LINQ Query 연산자

LINQ에는 다양한 쿼리 연산자가 있습니다. 이 연산자들은 다음과 같이 크게 분류할 수 있습니다. 필터링 연산자 변환 연산자 연산자 결합 집계 연산자 순서 연산자 각각의 연산자들에 대해 자세

sunmin.tistory.com

 

  • from : 데이터 소스로부터 데이터를 가져옵니다.
  • where : 가져온 데이터 중 특정 조건에 맞는 데이터만 선택합니다.
  • select : 선택된 데이터를 원하는 형태로 변환합니다.

이러한 키워드들을 사용하여 데이터를 검색하고 필터링하고 변환할 수 있습니다. 예를 들어, 다음과 같은 학생 목록이 있다고 가정해 봅시다.

List<Student> students = new List<Student>()
{
    new Student() { Name = "Alice", Age = 20, Gender = "Female" },
    new Student() { Name = "Bob", Age = 22, Gender = "Male" },
    new Student() { Name = "Charlie", Age = 18, Gender = "Male" },
    new Student() { Name = "Diana", Age = 21, Gender = "Female" },
};

이제 이 학생 목록에서 여자 학생의 이름만 가져오려면 다음과 같이 LINQ 쿼리를 작성할 수 있습니다.

var femaleNames = from student in students
                  where student.Gender == "Female"
                  select student.Name;

위의 LINQ 쿼리에서 from은 학생 목록에서 데이터를 가져오는 데 사용되며, where는 Gender 속성이 "Female"인 학생 데이터만 선택하도록 필터링합니다. 마지막으로 select는 선택된 데이터에서 이름 속성만 추출합니다.

위의 예제에서, femaleNames 변수에는 "Alice"와 "Diana"라는 문자열이 저장됩니다.

이와 같이 LINQ를 사용하면 간결하고 효율적인 코드를 작성할 수 있으며, 데이터를 검색하고 필터링하고 변환하는 작업을 쉽게 수행할 수 있습니다.

LINQ는 강력한 도구이며, 이를 사용하여 데이터를 쉽게 검색, 필터링, 정렬, 그룹화 및 변환할 수 있습니다. 이를 통해 코드의 가독성을 높이고, 개발 시간을 단축시킬 수 있습니다.

LINQ를 배우기 위해서는 C#의 기본 문법을 알고 있어야 하며, LINQ의 다양한 메서드와 연산자에 대한 이해가 필요합니다. 그러나 초보자도 점진적으로 배우며, 공식 문서 및 다양한 예제를 참고하면 LINQ를 쉽게 마스터할 수 있습니다.

728x90

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

Day 13: LINQ 소개 및 사용  (0) 2023.04.18
C# 다양한 LINQ Query 연산자  (0) 2023.04.14
Day 12: Entity Framework 소개 및 구현  (0) 2023.04.14
C# WPF Path 그리기(2)  (0) 2023.04.12
C# WPF Path 그리기(1)  (0) 2023.04.12