본문 바로가기
Languages/C#

Day 13: LINQ 소개 및 사용

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

이전에 다룬 LINQ를 토대로 LINQ의 설명을 들어서 같이 설명하겠습니다. 궁금하신 분은 아래 글을 참고해주세요.

2023.04.14 - [Languages/C#] - C# LINQ( Language-Integrated Query )

 

C# LINQ( Language-Integrated Query )

C# LINQ(언어 인티그레이티드 쿼리)(Language-Integrated Query)은 C# 언어의 확장된 기능 중 하나로, 데이터를 검색, 추출, 정렬 및 필터링할 수 있는 강력한 도구입니다. LINQ를 사용하면 데이터에 대한 쿼

sunmin.tistory.com

728x90

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

 

C# 다양한 LINQ Query 연산자

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

sunmin.tistory.com

LINQ는 Language Integrated Query의 약어로, .NET 프레임워크에서 데이터를 검색, 정렬, 필터링 및 그룹화하는 데 사용되는 기능입니다. LINQ는 C# 3.0 및 .NET Framework 3.5 이상에서 처음 도입되었습니다. 이를 사용하면 강력한 데이터 쿼리 및 데이터 조작 기능을 프로그래밍 언어에 직접 통합할 수 있습니다.

LINQ는 일반적으로 객체나 컬렉션에서 작동하지만, SQL 데이터베이스 및 XML 문서와 같은 다양한 데이터 소스에서도 작동할 수 있습니다. LINQ는 데이터 소스와 결과를 추상화하고, SQL 쿼리를 작성하는 것과 유사한 방식으로 쿼리를 작성할 수 있게 해줍니다.

LINQ를 사용하면 다음과 같은 이점이 있습니다.

  • 통합된 쿼리 언어를 사용하므로 개발자가 간단하고 직관적인 방식으로 쿼리를 작성할 수 있습니다.
  • 컴파일 시간에 오류를 쉽게 찾을 수 있습니다.
  • IntelliSense 및 다른 Visual Studio 도구를 사용하여 LINQ 쿼리를 빠르게 개발할 수 있습니다.
  • 컴파일러가 쿼리를 최적화하여 성능을 향상시킬 수 있습니다.

LINQ를 사용하면 쿼리를 작성하는 방법과 동작하는 방법이 기존 방식과 상당히 다릅니다. 기존 방식은 데이터를 검색하고 처리하기 위해 루프를 사용하는 것이 일반적이었지만, LINQ는 쿼리를 작성하여 데이터를 검색하고 처리합니다. 이를테면, C#에서 LINQ를 사용하여 컬렉션에서 필요한 항목을 검색하는 방법을 예제로 살펴보겠습니다.

using System;
using System.Linq;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };

        IEnumerable<int> evenNumbers = from number in numbers
                                       where number % 2 == 0
                                       select number;

        foreach (int evenNumber in evenNumbers)
        {
            Console.WriteLine(evenNumber);
        }
    }
}

위 예제에서는 List<int> 형식의 numbers 컬렉션에서 2로 나누어 떨어지는 항목을 검색하여 evenNumbers 변수에 저장합니다. 이를 위해 LINQ 쿼리를 사용하여 where 절을 작성하고, select 절을 사용하여 결과를 선택합니다. 마지막으로 foreach 문을 사용하여 결과를 출력합니다.

위 예제를 실행하면, 2와 4가 출력됩니다. 

그리고 다음으로, 우리는 LINQ의 Where() 메서드를 사용하여 조건을 추가해보겠습니다.

int[] numbers = { 1, 2, 3, 4, 5 };
var evenNumbers = numbers.Where(x => x % 2 == 0);

foreach (var number in evenNumbers)
{
    Console.WriteLine(number);
}

이 예제에서는 Where() 메서드를 사용하여 배열에서 짝수를 찾았습니다. 이 메서드는 함수를 매개변수로 사용합니다. 이 함수는 매개변수로 전달된 조건을 만족하는 요소를 찾습니다.

위 코드를 실행하면 2와 4가 출력됩니다.

다음으로, 우리는 LINQ의 Select() 메서드를 사용하여 필요한 속성만 선택할 수 있습니다.

class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int Age { get; set; }
}

List<Person> people = new List<Person>
{
    new Person { FirstName = "John", LastName = "Doe", Age = 30 },
    new Person { FirstName = "Jane", LastName = "Doe", Age = 25 },
    new Person { FirstName = "Bob", LastName = "Smith", Age = 50 }
};

var names = people.Select(x => x.FirstName);

foreach (var name in names)
{
    Console.WriteLine(name);
}

위 예제에서는 Person 클래스의 FirstName 속성만 선택합니다. Select() 메서드는 또한 함수를 매개변수로 사용합니다. 이 함수는 매개변수로 전달된 객체에서 선택한 속성을 반환합니다.

위 코드를 실행하면 "John", "Jane", "Bob"이 출력됩니다.

이처럼 LINQ를 사용하면 데이터를 쉽게 필터링하고 검색하고 선택할 수 있습니다. 이것은 일반적으로 다른 방법으로는 복잡하거나 불가능한 작업을 간단하고 직관적으로 처리할 수 있습니다.

더 복잡한 LINQ 쿼리를 작성하는 방법과 기타 LINQ 메서드에 대한 자세한 정보는 아래 MSDN 문서를 참조하십시오.

https://learn.microsoft.com/ko-kr/dotnet/csharp/programming-guide/concepts/linq/introduction-to-linq-queries

 

LINQ 쿼리 소개(C#)

LINQ는 다양한 데이터 원본 및 형식의 데이터 쿼리에 대한 일관된 모델을 제공합니다. LINQ 쿼리에서는 항상 개체를 사용합니다.

learn.microsoft.com

 

728x90