Home C#의 LINQ
Post
Cancel

C#의 LINQ

C#의 LINQ란?

질문

LINQ란?

LINQ의 특징

LINQ와 SQL의 비교

LINQ

Language-Integrated Query

  • C# 및 .NET 언어에서 일관된 방식으로 데이터를 쿼리하고 조작하기 위한 기능

통합된 구문

  • SQL과 비슷한 방식의 통합된 구문을 제공해 데이터를 필터링, 정렬, 그룹화 등을 간단히 수행
  • 배열, 리스트, 컬렉션, 데이터베이스, XML 등 다양한 데이터 소스에 적용 가능

가독성 향상

  • 데이터를 일관성 있게 처리할 수 있는 통합된 쿼리 구문 제공
  • 명시적이고 직관적인 쿼리 구문으로 코드 이해가 쉽고 코드 유지 보수를 높이며 데이터 조작을 간소화

타입 안정성

  • 컴파일 타임에 데이터 타입을 검증해 쿼리의 오류 검출

지연 실행

  • 쿼리가 정의될 때 실행되지 않고 실제 데이터를 요청할 때 실행
  • 필요한 시점까지 쿼리를 실행하지 않아 성능 최적화 가능

LINQ의 주요 구성 요소

Query Syntax

  • 쿼리 구문
  • SQL과 유사한 형태

Method Syntax

  • 메서드 구문
  • 메서드 체이닝 방식으로 쿼리 작성

LINQ Providers

  • 다양한 데이터 소스에 대해 LINQ 기능을 제공
  • LINQ to Objects, LINQ to SQL, LINQ to XML , …

LINQ 예제 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System;
using System.Linq;

class Program
{
    static void Main()
    {
        int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
        // LINQ Query Syntax
        var evenNumbers = from num in numbers where num % 2 == 0 select num;
        Console.WriteLine("Even numbers:");
        foreach (var num in evenNumbers)
        {
            Console.WriteLine(num);
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;
using System.Collections.Generic;
using Sysmtem.Linq;

class Program
{
    static void Main()
    {
        List<string> fruits = new List<string> { "Apple", "Orange", "Banana", "Grape", "Melon" };
        // LINQ Method Syntax
        var sortedFruits = fruits.Where(fruit => fruit.Length > 3).OrderBy(fruit => fruit);
        Console.WriteLine("Filtered and sorted fruits");
        foreach (var fruit in sortedFruits)
        {
            Console.WriteLine(fruit);
        }
    }
}

LINQ와 SQL

LINQ

  • C# 코드 내에서 다양한 데이터 소스를 처리할 수 있는 통합된 쿼리 언어
  • 애플리케이션 내부에서 데이터를 조작할 때 주로 사용

SQL

  • 데이터베이스에 저장된 데이터를 처리하기 위한 언어
  • 데이터베이스와의 통신에 사용

출처

C#의 LINQ 쿼리 소개

LINQ

This post is licensed under CC BY 4.0 by the author.