English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

LINQ 생성 연산자 Empty, Range, Repeat

LINQ는 DefaultIfEmpty, Empty, Range&Repeat와 같은 생성 연산자를 포함합니다. Empty, Range, Repeat 메서드는 IEnumerable 또는 IQueryable의 확장 메서드가 아니라, 단순히 스태틱 클래스 Enumerable에 정의된 스태틱 메서드입니다.  

메서드설명
Empty빈 셋을 반환합니다
Range첫 번째 요소부터 시작하여 지정된 순서 값을 가진 요소 수를 가진 IEnumerable <T> 타입의 셋을 생성합니다.
Repeat지정된 요소 수를 가진 IEnumerable <T> 타입의 셋을 생성합니다. 각 요소는 지정된 값을 포함합니다.

Empty

Empty()는 LINQ 메서드와 같이 IEnumerable 또는 IQueryable의 확장 메서드가 아닙니다. 이는 Enumerable 스태틱 클래스에 포함된 스태틱 메서드입니다. 따라서 다른 스태틱 메서드(예: Enumerable.Empty<TResult>())와 같이 호출할 수 있습니다. Empty() 메서드는 지정된 타입의 빈 셋을 반환합니다. 예를 들어 다음과 같이 사용할 수 있습니다.

var emptyCollection1 = Enumerable.Empty<string>();
var emptyCollection2 = Enumerable.Empty<Student>();
Console.WriteLine("Count: {0} ", emptyCollection1.Count());
Console.WriteLine("Type: {0} ", emptyCollection1.GetType().Name );
Console.WriteLine("Count: {0} ", emptyCollection2.Count());
Console.WriteLine("Type: {0} ", emptyCollection2.GetType().Name );
출력:
Type: String[]
Count: 0
Type: Student[]
Count: 0

Range

Range() 메서드는 지정된 요소 수와 첫 번째 요소부터 시작하는 순서 값을 가진 IEnumerable <T> 타입의 셋을 반환합니다.

var intCollection = Enumerable.Range(10, 10);
Console.WriteLine("총 계산 수: {0} ", intCollection.Count());
for(int i = 0; i < intCollection.Count(); i++)
    Console.WriteLine("값, 인덱스 위치는 {0} : {1}
출력:

총 계산 수: 10
값, 인덱스 위치는 0: 10
값, 인덱스 위치는 1 : 11
값, 인덱스 위치는 2 : 12
값, 인덱스 위치는 3 : 13
값, 인덱스 위치는 4 : 14
값, 인덱스 위치는 5 : 15
값, 인덱스 위치는 6 : 16
값, 인덱스 위치는 7 : 17
값, 인덱스 위치는 8 : 18
값, 인덱스 위치는 9 : 19

위의 예제에서 Enumerable.Range(10, 10)을 생성합니다.10개의 정수 요소 집합, 순서 값은10시작. 첫 번째 매개변수는 요소의 시작 값을 지정하고, 두 번째 매개변수는 생성할 요소 수를 지정합니다.

Repeat

Repeat() 메서드는 지정된 수의 요소로 IEnumerable <T> 타입의 집합을 생성합니다. 각 요소는 동일한 지정된 값을 포함합니다.

var intCollection = Enumerable.Repeat<int>(10, 10);
Console.WriteLine("총 수: {0} ", intCollection.Count());
for(int i = 0; i < intCollection.Count(); i++)
    Console.WriteLine("값, 인덱스 위치는 {0} : {1}
출력:
총 수:10
값, 인덱스 위치는 0: 10
값, 인덱스 위치는 1: 10
값, 인덱스 위치는 2: 10
값, 인덱스 위치는 3: 10
값, 인덱스 위치는 4: 10
값, 인덱스 위치는 5: 10
값, 인덱스 위치는 6: 10
값, 인덱스 위치는 7: 10
값, 인덱스 위치는 8: 10
값, 인덱스 위치는 9: 10

위의 예제에서 Enumerable.Repeat<int>(10, 10) 생성된 요소는100개의 중복 값이 있습니다.10의 정수형 요소 집합, 첫 번째 매개변수는 모든 요소의 값을 지정하고, 두 번째 매개변수는 생성할 요소 수를 지정합니다.