Queryable.Where Metoda

Definicja

Filtruje sekwencję wartości na podstawie predykatu.Filters a sequence of values based on a predicate.

Przeciążenia

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

Filtruje sekwencję wartości na podstawie predykatu.Filters a sequence of values based on a predicate.

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

Filtruje sekwencję wartości na podstawie predykatu.Filters a sequence of values based on a predicate. Indeks każdego elementu jest używany w logice funkcji predykatu.Each element's index is used in the logic of the predicate function.

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

Filtruje sekwencję wartości na podstawie predykatu.Filters a sequence of values based on a predicate.

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

Parametry typu

TSource

Typ elementów source .The type of the elements of source.

Parametry

source
IQueryable<TSource>

IQueryable<T>Do filtrowania.An IQueryable<T> to filter.

predicate
Expression<Func<TSource,Boolean>>

Funkcja testowania każdego elementu na stanie.A function to test each element for a condition.

Zwraca

IQueryable<TSource>

IQueryable<T>Zawiera elementy z sekwencji wejściowej, które spełniają warunek określony przez predicate .An IQueryable<T> that contains elements from the input sequence that satisfy the condition specified by predicate.

Wyjątki

source lub predicate jest null .source or predicate is null.

Przykłady

Poniższy przykład kodu demonstruje, jak używać Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) do filtrowania sekwencji.The following code example demonstrates how to use Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) to filter a sequence.

List<string> fruits =
    new List<string> { "apple", "passionfruit", "banana", "mango",
                       "orange", "blueberry", "grape", "strawberry" };

// Get all strings whose length is less than 6.
IEnumerable<string> query =
    fruits.AsQueryable().Where(fruit => fruit.Length < 6);

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

/*
    This code produces the following output:

    apple
    mango
    grape
*/
Dim fruits As New List(Of String)(New String() _
                        {"apple", "passionfruit", "banana", "mango", _
                         "orange", "blueberry", "grape", "strawberry"})

' Get all strings whose length is less than 6.
Dim query = fruits.AsQueryable().Where(Function(fruit) fruit.Length < 6)

' 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
' mango
' grape

Uwagi

Ta metoda ma co najmniej jeden parametr typu Expression<TDelegate> , którego argument typu jest jednym z Func<T,TResult> typów.This method has at least one parameter of type Expression<TDelegate> whose type argument is one of the Func<T,TResult> types. Dla tych parametrów można przekazać wyrażenie lambda i zostanie ono skompilowane do Expression<TDelegate> .For these parameters, you can pass in a lambda expression and it will be compiled to an Expression<TDelegate>.

Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)Metoda generuje element MethodCallExpression reprezentujący wywoływanie Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) jako metodę rodzajową.The Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) method generates a MethodCallExpression that represents calling Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) itself as a constructed generic method. Następnie przekazuje MethodCallExpression do CreateQuery(Expression) metody IQueryProvider reprezentowanej przez Provider Właściwość source parametru.It then passes the MethodCallExpression to the CreateQuery(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

Zachowanie zapytania, które występuje w wyniku wykonania drzewa wyrażenia, które reprezentuje wywołanie, Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) zależy od implementacji typu source parametru.The query behavior that occurs as a result of executing an expression tree that represents calling Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) depends on the implementation of the type of the source parameter. Oczekiwane zachowanie polega na tym, że zwraca elementy z source , które spełniają warunek określony przez predicate .The expected behavior is that it returns the elements from source that satisfy the condition specified by predicate.

Dotyczy

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

Filtruje sekwencję wartości na podstawie predykatu.Filters a sequence of values based on a predicate. Indeks każdego elementu jest używany w logice funkcji predykatu.Each 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> ^ Where(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, int, bool> ^> ^ predicate);
public static System.Linq.IQueryable<TSource> Where<TSource> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,int,bool>> predicate);
static member Where : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, int, bool>> -> System.Linq.IQueryable<'Source>
<Extension()>
Public Function Where(Of TSource) (source As IQueryable(Of TSource), predicate As Expression(Of Func(Of TSource, Integer, Boolean))) As IQueryable(Of TSource)

Parametry typu

TSource

Typ elementów source .The type of the elements of source.

Parametry

source
IQueryable<TSource>

IQueryable<T>Do filtrowania.An IQueryable<T> to filter.

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

Funkcja do testowania każdego elementu dla warunku; drugi parametr funkcji reprezentuje indeks elementu w sekwencji źródłowej.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.

Zwraca

IQueryable<TSource>

IQueryable<T>Zawiera elementy z sekwencji wejściowej, które spełniają warunek określony przez predicate .An IQueryable<T> that contains elements from the input sequence that satisfy the condition specified by predicate.

Wyjątki

source lub predicate jest null .source or predicate is null.

Przykłady

Poniższy przykład kodu demonstruje, jak używać Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) do filtrowania sekwencji na podstawie predykatu, który zawiera indeks każdego elementu.The following code example demonstrates how to use Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) to filter a sequence based on a predicate that incorporates the index of each element.

int[] numbers = { 0, 30, 20, 15, 90, 85, 40, 75 };

// Get all the numbers that are less than or equal to
// the product of their index in the array and 10.
IEnumerable<int> query =
    numbers.AsQueryable()
    .Where((number, index) => number <= index * 10);

foreach (int number in query)
    Console.WriteLine(number);

/*
    This code produces the following output:

    0
    20
    15
    40
*/
Dim numbers() As Integer = {0, 30, 20, 15, 90, 85, 40, 75}

' Get all the numbers that are less than or equal to
' the product of their index in the array and 10.
Dim query = numbers.AsQueryable() _
    .Where(Function(number, index) number <= index * 10)

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

' This code produces the following output:

' 0
' 20
' 15
' 40

Uwagi

Ta metoda ma co najmniej jeden parametr typu Expression<TDelegate> , którego argument typu jest jednym z Func<T,TResult> typów.This method has at least one parameter of type Expression<TDelegate> whose type argument is one of the Func<T,TResult> types. Dla tych parametrów można przekazać wyrażenie lambda i zostanie ono skompilowane do Expression<TDelegate> .For these parameters, you can pass in a lambda expression and it will be compiled to an Expression<TDelegate>.

Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>)Metoda generuje element MethodCallExpression reprezentujący wywoływanie Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) jako metodę rodzajową.The Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) method generates a MethodCallExpression that represents calling Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) itself as a constructed generic method. Następnie przekazuje MethodCallExpression do CreateQuery(Expression) metody IQueryProvider reprezentowanej przez Provider Właściwość source parametru.It then passes the MethodCallExpression to the CreateQuery(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

Zachowanie zapytania, które występuje w wyniku wykonania drzewa wyrażenia, które reprezentuje wywołanie, Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) zależy od implementacji typu source parametru.The query behavior that occurs as a result of executing an expression tree that represents calling Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) depends on the implementation of the type of the source parameter. Oczekiwane zachowanie polega na tym, że zwraca elementy z source , które spełniają warunek określony przez predicate .The expected behavior is that it returns the elements from source that satisfy the condition specified by predicate. Indeks każdego elementu źródłowego jest podany jako drugi argument predicate .The index of each source element is provided as the second argument to predicate.

Dotyczy