본문 바로가기

C#/LINQ

LINQ의 지연 실행과 즉시 실행

아래의 LINQ를 사용한 코드를 살펴보자.

 

IEnumerable<string> query = names.Where(s=>s.Length <= 6);

 

query 변수에는 검색된 결과가 대입되는 것이 아니다.

 

Where 메서드가 호출돼도 검색은 해당 시점에서 실행되지 않고 실제 값이 필요할 때 쿼리가 실행된다.

 

이를 '지연 실행'이라고 한다. 실제로 데이터가 필요할 때 쿼리가 실행되는 것이고 이것이 LINQ의 큰 특징이다.

 

 

 

 

그러나 경우에 따라서는 쿼리를 명시적으로 실행하고 싶을 때도 있을 것이다.

 

그럴 때 이용할 수 있는 것이 ToArrayToList 메서드이다.

 

List<string> query = names.Where(s=>s.Length <= 6).ToList();    //여기에서 List로 변환

 

이렇게 하면 ToList() 메서드가 호출됐을 때 쿼리가 실행되며 그 결과가 배열에 저장된다.

이를 '즉시 실행'이라고 한다.

 

 

 

 

LINQ에는 ToArray 메서드나 ToList 메서드 외에도 즉시 실행되는 메서드가 있다.

Count 메서드가 그중 하나이다.

 

LINQ에는 Count 메서드처럼 하나의 값을 반환하는 메서드가 있는데 이런 메서드는 모두 즉시 실행되는 메서드이다.

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

LINQ to Objects의 기초  (0) 2021.06.15