Queryable.Where Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Filtrerar en sekvens med värden baserat på ett predikat.
Överlagringar
| Name | Description |
|---|---|
| Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) |
Filtrerar en sekvens med värden baserat på ett predikat. Varje elements index används i logiken i predikatfunktionen. |
| Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) |
Filtrerar en sekvens med värden baserat på ett predikat. |
Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>)
Filtrerar en sekvens med värden baserat på ett predikat. Varje elements index används i logiken i predikatfunktionen.
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)
Typparametrar
- TSource
Typen av element sourcei .
Parametrar
- source
- IQueryable<TSource>
En IQueryable<T> att filtrera.
- predicate
- Expression<Func<TSource,Int32,Boolean>>
En funktion för att testa varje element för ett villkor. den andra parametern för funktionen representerar indexet för elementet i källsekvensen.
Returer
En IQueryable<T> som innehåller element från indatasekvensen som uppfyller villkoret som anges av predicate.
Undantag
source eller predicate är null.
Exempel
Följande kodexempel visar hur du använder Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) för att filtrera en sekvens baserat på ett predikat som innehåller indexet för varje 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
Kommentarer
Den här metoden har minst en parameter av typen Expression<TDelegate> vars typargument är en av typerna Func<T,TResult> . För dessa parametrar kan du skicka ett lambda-uttryck och kompileras till en Expression<TDelegate>.
Metoden Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) genererar en MethodCallExpression som representerar att anropa Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) sig själv som en konstruerad generisk metod. Den skickar sedan till CreateQuery(Expression) metoden för den IQueryProvider som representeras av Provider egenskapen för parameternsource.MethodCallExpression
Frågebeteendet som uppstår till följd av att ett uttrycksträd som representerar anrop Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) körs beror på implementeringen av source parametertypen. Det förväntade beteendet är att det returnerar elementen från source som uppfyller villkoret som anges av predicate. Indexet för varje källelement anges som det andra argumentet till predicate.
Gäller för
Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)
Filtrerar en sekvens med värden baserat på ett predikat.
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)
Typparametrar
- TSource
Typen av element sourcei .
Parametrar
- source
- IQueryable<TSource>
En IQueryable<T> att filtrera.
- predicate
- Expression<Func<TSource,Boolean>>
En funktion för att testa varje element för ett villkor.
Returer
En IQueryable<T> som innehåller element från indatasekvensen som uppfyller villkoret som anges av predicate.
Undantag
source eller predicate är null.
Exempel
Följande kodexempel visar hur du använder Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) för att filtrera en sekvens.
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
Kommentarer
Den här metoden har minst en parameter av typen Expression<TDelegate> vars typargument är en av typerna Func<T,TResult> . För dessa parametrar kan du skicka ett lambda-uttryck och kompileras till en Expression<TDelegate>.
Metoden Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) genererar en MethodCallExpression som representerar att anropa Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) sig själv som en konstruerad generisk metod. Den skickar sedan till CreateQuery(Expression) metoden för den IQueryProvider som representeras av Provider egenskapen för parameternsource.MethodCallExpression
Frågebeteendet som uppstår till följd av att ett uttrycksträd som representerar anrop Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) körs beror på implementeringen av source parametertypen. Det förväntade beteendet är att det returnerar elementen från source som uppfyller villkoret som anges av predicate.