본문 바로가기
프로그래밍/C# LINQ

C# LINQ - Enumerable.TakeWhile

by bantomak 2024. 3. 28.
반응형

Enumerable.TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>) 메서드

public static System.Collections.Generic.IEnumerable<TSource> TakeWhile<TSource> (this
System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate);

매개변수

source IEnumerable<TSource>

요소가 반환되는 시퀀스

predicate Func<TSource, Boolean>

각 소스 요소를 조건에 대해 테스트할 함수

 

반환

IEnumerable<TSource>

테스트를 통과한 요소들의 시퀀스를 반환한다.

 

예제 코드

string[] fruits = { "apple", "banana", "mango", "orange",
                      "passionfruit", "grape" };

IEnumerable<string> query =
    fruits.TakeWhile(fruit => String.Compare("orange", fruit, true) != 0);

foreach (string fruit in query)
{
    Console.WriteLine(fruit);
}

/*
 This code produces the following output:

 apple
 banana
 mango
*/

 

조건으로 설정한 함수가 참일때까지의 요소를 반환한다.

 

Enumerable.TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,  Int32, Boolean>) 메서드

public static System.Collections.Generic.IEnumerable<TSource> TakeWhile<TSource> (this
System.Collections.Generic.IEnumerable<TSource> source, Func<TSource, int, bool> predicate);

매개변수

source IEnumerable<TSource>

요소가 반환되는 시퀀스

predicate Func<TSource, Int32, Boolean>

각 소스 요소를 조건에 대해 테스트할 함수이며, 두번째 매개 변수는 소스 요소의 인덱스를 나타낸다.

 

반환

IEnumerable<TSource>

테스트를 통과한 요소들의 시퀀스를 반환한다.

 

예제 코드

string[] fruits = { "apple", "passionfruit", "banana", "mango",
                      "orange", "blueberry", "grape", "strawberry" };

IEnumerable<string> query =
    fruits.TakeWhile((fruit, index) => fruit.Length >= index);

foreach (string fruit in query)
{
    Console.WriteLine(fruit);
}

/*
 This code produces the following output:

 apple
 passionfruit
 banana
 mango
 orange
 blueberry
*/

 

출처

 

Enumerable.TakeWhile 메서드 (System.Linq)

지정된 조건이 true인 동안 시퀀스의 요소를 반환하고 나머지 요소를 건너뜁니다.

learn.microsoft.com

'프로그래밍 > C# LINQ' 카테고리의 다른 글

C# LINQ - Enumerable.Zip()  (0) 2024.03.05
C# 표준 질의 연산자(Standard Query Operators)  (1) 2024.02.26
C# Linq - Enumerable.Take()  (0) 2024.02.26
C# Linq - Enumerable.Reverse()  (0) 2024.02.19
C# Linq - Enumerable.OfType()  (1) 2024.02.16

댓글