Queryable.TakeWhile 메서드

정의

지정된 조건이 true인 동안 시퀀스의 요소를 반환하고 나머지 요소를 건너뜁니다.Returns elements from a sequence as long as a specified condition is true, and then skips the remaining elements.

오버로드

TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)

지정된 조건이 true인 동안 시퀀스에서 요소를 반환합니다.Returns elements from a sequence as long as a specified condition is true.

TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>)

지정된 조건이 true인 동안 시퀀스에서 요소를 반환합니다.Returns elements from a sequence as long as a specified condition is true. 조건자 함수의 논리에 요소의 인덱스가 사용됩니다.The element's index is used in the logic of the predicate function.

TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)

지정된 조건이 true인 동안 시퀀스에서 요소를 반환합니다.Returns elements from a sequence as long as a specified condition is true.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IQueryable<TSource> ^ TakeWhile(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, bool> ^> ^ predicate);
public static System.Linq.IQueryable<TSource> TakeWhile<TSource> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,bool>> predicate);
static member TakeWhile : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, bool>> -> System.Linq.IQueryable<'Source>
<Extension()>
Public Function TakeWhile(Of TSource) (source As IQueryable(Of TSource), predicate As Expression(Of Func(Of TSource, Boolean))) As IQueryable(Of TSource)

형식 매개 변수

TSource

source 요소의 형식입니다.The type of the elements of source.

매개 변수

source
IQueryable<TSource>

요소가 반환되는 시퀀스입니다.The sequence to return elements from.

predicate
Expression<Func<TSource,Boolean>>

각 요소를 조건에 대해 테스트하는 함수입니다.A function to test each element for a condition.

반환

IQueryable<TSource>

입력 시퀀스에서 요소가 predicate에 지정된 테스트를 더 이상 통과하지 않는 위치보다 앞에 나오는 요소가 들어 있는 IQueryable<T>입니다.An IQueryable<T> that contains elements from the input sequence occurring before the element at which the test specified by predicate no longer passes.

예외

source 또는 predicatenull인 경우source or predicate is null.

예제

다음 코드 예제에서는 TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) 조건이 true 인 동안를 사용 하 여 시퀀스의 시작 부분에서 요소를 반환 하는 방법을 보여 줍니다.The following code example demonstrates how to use TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) to return elements from the start of a sequence as long as a condition is true.

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

// Take strings from the array until a string
// that is equal to "orange" is found.
IEnumerable<string> query =
    fruits.AsQueryable()
    .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
*/

Dim fruits() As String = {"apple", "banana", "mango", "orange", _
                      "passionfruit", "grape"}

' Take strings from the array until a string
' that is equal to "orange" is found.
Dim query = fruits.AsQueryable() _
    .TakeWhile(Function(fruit) String.Compare("orange", fruit, True) <> 0)

Dim output As New System.Text.StringBuilder
For Each fruit As String In query
    output.AppendLine(fruit)
Next

' Display the output.
MsgBox(output.ToString())

'This code produces the following output:

'apple
'banana
'mango

설명

이 메서드에 형식 인수가 형식 중 하나인 형식의 매개 변수가 하나 이상 있습니다 Expression<TDelegate> Func<T,TResult> .This method has at least one parameter of type Expression<TDelegate> whose type argument is one of the Func<T,TResult> types. 이러한 매개 변수는 람다 식을 전달할 수 있으며로 컴파일됩니다 Expression<TDelegate> .For these parameters, you can pass in a lambda expression and it will be compiled to an Expression<TDelegate>.

TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)메서드는 자신을 MethodCallExpression 생성 된 제네릭 메서드로 호출 하는을 생성 합니다 TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) .The TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) method generates a MethodCallExpression that represents calling TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) itself as a constructed generic method. 그런 다음 MethodCallExpression CreateQuery(Expression) IQueryProvider Provider 매개 변수의 속성이 나타내는의 메서드에를 전달 합니다 source .It then passes the MethodCallExpression to the CreateQuery(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

호출을 나타내는 식 트리를 실행 한 결과로 발생 하는 쿼리 동작은 TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) 매개 변수의 형식 구현에 따라 달라 집니다 source .The query behavior that occurs as a result of executing an expression tree that represents calling TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) depends on the implementation of the type of the source parameter. 예상 되는 동작은가를 반환 하는 predicate 요소를 source 찾을 때까지의 각 요소에 적용 된다는 것입니다 predicate false .The expected behavior is that it applies predicate to each element in source until it finds an element for which predicate returns false. 해당 시점까지 모든 요소를 반환 합니다.It returns all the elements up until that point.

적용 대상

TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>)

지정된 조건이 true인 동안 시퀀스에서 요소를 반환합니다.Returns elements from a sequence as long as a specified condition is true. 조건자 함수의 논리에 요소의 인덱스가 사용됩니다.The element's index is used in the logic of the predicate function.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IQueryable<TSource> ^ TakeWhile(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, int, bool> ^> ^ predicate);
public static System.Linq.IQueryable<TSource> TakeWhile<TSource> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,int,bool>> predicate);
static member TakeWhile : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, int, bool>> -> System.Linq.IQueryable<'Source>
<Extension()>
Public Function TakeWhile(Of TSource) (source As IQueryable(Of TSource), predicate As Expression(Of Func(Of TSource, Integer, Boolean))) As IQueryable(Of TSource)

형식 매개 변수

TSource

source 요소의 형식입니다.The type of the elements of source.

매개 변수

source
IQueryable<TSource>

요소가 반환되는 시퀀스입니다.The sequence to return elements from.

predicate
Expression<Func<TSource,Int32,Boolean>>

각 요소를 조건에 대해 테스트할 함수이며, 이 함수의 두 번째 매개 변수는 소스 시퀀스에 있는 요소의 인덱스를 나타냅니다.A function to test each element for a condition; the second parameter of the function represents the index of the element in the source sequence.

반환

IQueryable<TSource>

입력 시퀀스에서 요소가 predicate에 지정된 테스트를 더 이상 통과하지 않는 위치보다 앞에 나오는 요소가 들어 있는 IQueryable<T>입니다.An IQueryable<T> that contains elements from the input sequence occurring before the element at which the test specified by predicate no longer passes.

예외

source 또는 predicatenull인 경우source or predicate is null.

예제

다음 코드 예제에서는 TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) 요소의 인덱스를 사용 하는 조건이 true 인 경우를 사용 하 여 시퀀스의 시작 부분에서 요소를 반환 하는 방법을 보여 줍니다.The following code example demonstrates how to use TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) to return elements from the start of a sequence as long as a condition that uses the index of the element is true.

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

// Take strings from the array until a string whose length
// is less than its index in the array is found.
IEnumerable<string> query =
    fruits.AsQueryable()
    .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
*/

Dim fruits() As String = _
    {"apple", "passionfruit", "banana", "mango", _
     "orange", "blueberry", "grape", "strawberry"}

' Take strings from the array until a string whose length
' is less than its index in the array is found.
Dim query = fruits.AsQueryable() _
    .TakeWhile(Function(fruit, index) fruit.Length >= index)

' Display the results.
Dim output As New System.Text.StringBuilder
For Each fruit As String In query
    output.AppendLine(fruit)
Next
MsgBox(output.ToString())

' This code produces the following output:

' apple
' passionfruit
' banana
' mango
' orange
' blueberry

설명

이 메서드에 형식 인수가 형식 중 하나인 형식의 매개 변수가 하나 이상 있습니다 Expression<TDelegate> Func<T,TResult> .This method has at least one parameter of type Expression<TDelegate> whose type argument is one of the Func<T,TResult> types. 이러한 매개 변수는 람다 식을 전달할 수 있으며로 컴파일됩니다 Expression<TDelegate> .For these parameters, you can pass in a lambda expression and it will be compiled to an Expression<TDelegate>.

TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>)메서드는 자신을 MethodCallExpression 생성 된 제네릭 메서드로 호출 하는을 생성 합니다 TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) .The TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) method generates a MethodCallExpression that represents calling TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) itself as a constructed generic method. 그런 다음 MethodCallExpression CreateQuery(Expression) IQueryProvider Provider 매개 변수의 속성이 나타내는의 메서드에를 전달 합니다 source .It then passes the MethodCallExpression to the CreateQuery(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

호출을 나타내는 식 트리를 실행 한 결과로 발생 하는 쿼리 동작은 TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) 매개 변수의 형식 구현에 따라 달라 집니다 source .The query behavior that occurs as a result of executing an expression tree that represents calling TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) depends on the implementation of the type of the source parameter. 예상 되는 동작은가를 반환 하는 predicate 요소를 source 찾을 때까지의 각 요소에 적용 된다는 것입니다 predicate false .The expected behavior is that it applies predicate to each element in source until it finds an element for which predicate returns false. 해당 시점까지 모든 요소를 반환 합니다.It returns all the elements up until that point. 각 소스 요소의 인덱스는에 대 한 두 번째 인수로 제공 됩니다 predicate .The index of each source element is provided as the second argument to predicate.

적용 대상