C#/LINQ

LINQ 쿼리 소개(C#)

소나무꼴 2023. 12. 30. 17:36

https://learn.microsoft.com/ko-kr/dotnet/csharp/linq/get-started/introduction-to-linq-queries

 

LINQ 쿼리 소개(C#) - C#

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

learn.microsoft.com

 

1. 기본

// The Three Parts of a LINQ Query:
// 1. Data source.
int[] numbers = [ 0, 1, 2, 3, 4, 5, 6 ];

// 2. Query creation.
// numQuery is an IEnumerable<int>
var numQuery =
    from num in numbers
    where (num % 2) == 0
    select num;

// 3. Query execution.
foreach (int num in numQuery)
{
    Console.Write("{0,1} ", num);
}

 

from 데이터 원본을 지정하고, where 절은 필터를 적용하고, 절은 select 반환된 요소의 형식을 지정

 

2. 쿼리 실행

  • 지연실행
    • 사용될때 생성되고 이전에는 생성되지 않는 것.
    • 위 코드에서 Foreeach 가 호출되지 전까지 결과를 가지고 있지 않고 있다.
  • 즉시 실행
    • 소스 요소 범위에 대해 집계 함수를 수행하는 쿼리는 먼저 해당 요소를 반복해야 합니다. 이러한 쿼리의 예로 Count, Max, Average 및 First
var evenNumQuery =
    from num in numbers
    where (num % 2) == 0
    select num;

int evenNumCount = evenNumQuery.Count();

 

 

  • 모든 쿼리를 즉시 실행하고 그 결과를 캐시하기 위해 ToList 또는 ToArray 메서드
List<int> numQuery2 =
    (from num in numbers
        where (num % 2) == 0
        select num).ToList();

// or like this:
// numQuery3 is still an int[]

var numQuery3 =
    (from num in numbers
        where (num % 2) == 0
        select num).ToArray();

 

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

표준 쿼리 연산자 : LINQ를 통한 데이터 변환(C#)  (1) 2024.01.04
확장명 메서드  (0) 2024.01.03
C# LINQ 쿼리를 작성하여 데이터 쿼리  (0) 2024.01.01
쿼리 식 기본 사항  (0) 2023.12.30