Queryable.Where Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bir koşula göre bir değer dizisini filtreler.
Aşırı Yüklemeler
Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) |
Bir koşula göre bir değer dizisini filtreler. |
Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) |
Bir koşula göre bir değer dizisini filtreler. Her öğenin dizini koşul işlevinin mantığında kullanılır. |
Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)
- Kaynak:
- Queryable.cs
- Kaynak:
- Queryable.cs
- Kaynak:
- Queryable.cs
Bir koşula göre bir değer dizisini filtreler.
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)
Tür Parametreleri
- TSource
öğelerinin source
türü.
Parametreler
- source
- IQueryable<TSource>
Filtre uygulamak için bir IQueryable<T> .
- predicate
- Expression<Func<TSource,Boolean>>
Bir koşul için her öğeyi test etmek için bir işlev.
Döndürülenler
IQueryable<T> tarafından predicate
belirtilen koşulu karşılayan giriş dizisinden öğeleri içeren bir.
Özel durumlar
source
veya predicate
şeklindedir null
.
Örnekler
Aşağıdaki kod örneği, bir diziyi filtrelemek için nasıl kullanılacağını Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) gösterir.
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
Açıklamalar
Bu yöntem, tür bağımsız değişkeni türlerden Expression<TDelegate> biri olan türünde en az bir parametreye Func<T,TResult> sahiptir. Bu parametreler için bir lambda ifadesi geçirebilirsiniz ve bu ifade bir Expression<TDelegate>olarak derlenir.
yöntemi, Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) kendisini oluşturulan genel bir MethodCallExpression yöntem olarak çağırmayı Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) temsil eden bir oluşturur. Daha sonra parametresinin özelliği tarafından Provider temsil edilen yöntemine IQueryProvidersource
iletirMethodCallExpression.CreateQuery(Expression)
Çağrıyı Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) temsil eden bir ifade ağacının yürütülmesi sonucunda oluşan sorgu davranışı, parametre türünün uygulanmasına source
bağlıdır. Beklenen davranış, tarafından predicate
belirtilen koşulu karşılayan öğelerini source
döndürmesidir.
Şunlara uygulanır
Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>)
- Kaynak:
- Queryable.cs
- Kaynak:
- Queryable.cs
- Kaynak:
- Queryable.cs
Bir koşula göre bir değer dizisini filtreler. Her öğenin dizini koşul işlevinin mantığında kullanılır.
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)
Tür Parametreleri
- TSource
öğelerinin source
türü.
Parametreler
- source
- IQueryable<TSource>
Filtre uygulamak için bir IQueryable<T> .
- predicate
- Expression<Func<TSource,Int32,Boolean>>
Bir koşul için her öğeyi test etmek için bir işlev; işlevinin ikinci parametresi, kaynak dizideki öğenin dizinini temsil eder.
Döndürülenler
IQueryable<T> tarafından predicate
belirtilen koşulu karşılayan giriş dizisinden öğeleri içeren bir.
Özel durumlar
source
veya predicate
şeklindedir null
.
Örnekler
Aşağıdaki kod örneği, her öğenin dizinini içeren bir koşula göre bir diziyi filtrelemek için nasıl kullanılacağını Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) gösterir.
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
Açıklamalar
Bu yöntem, tür bağımsız değişkeni türlerden Expression<TDelegate> biri olan türünde en az bir parametreye Func<T,TResult> sahiptir. Bu parametreler için bir lambda ifadesi geçirebilirsiniz ve bu ifade bir Expression<TDelegate>olarak derlenir.
yöntemi, Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) kendisini oluşturulan genel bir MethodCallExpression yöntem olarak çağırmayı Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) temsil eden bir oluşturur. Daha sonra parametresinin özelliği tarafından Provider temsil edilen yöntemine IQueryProvidersource
iletirMethodCallExpression.CreateQuery(Expression)
Çağrıyı Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) temsil eden bir ifade ağacının yürütülmesi sonucunda oluşan sorgu davranışı, parametre türünün uygulanmasına source
bağlıdır. Beklenen davranış, tarafından predicate
belirtilen koşulu karşılayan öğelerini source
döndürmesidir. Her kaynak öğenin dizini, için ikinci bağımsız değişken predicate
olarak sağlanır.