Queryable.Where Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Memfilter urutan nilai berdasarkan predikat.
Overload
Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) |
Memfilter urutan nilai berdasarkan predikat. |
Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) |
Memfilter urutan nilai berdasarkan predikat. Indeks setiap elemen digunakan dalam logika fungsi predikat. |
Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)
- Sumber:
- Queryable.cs
- Sumber:
- Queryable.cs
- Sumber:
- Queryable.cs
Memfilter urutan nilai berdasarkan 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)
Jenis parameter
- TSource
Jenis elemen source
.
Parameter
- source
- IQueryable<TSource>
Untuk IQueryable<T> memfilter.
- predicate
- Expression<Func<TSource,Boolean>>
Fungsi untuk menguji setiap elemen untuk suatu kondisi.
Mengembalikan
Yang IQueryable<T> berisi elemen dari urutan input yang memenuhi kondisi yang ditentukan oleh predicate
.
Pengecualian
source
atau predicate
adalah null
.
Contoh
Contoh kode berikut menunjukkan cara menggunakan Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) untuk memfilter urutan.
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
Keterangan
Metode ini memiliki setidaknya satu parameter jenis Expression<TDelegate> yang argumen jenisnya adalah salah satu jenisnya Func<T,TResult> . Untuk parameter ini, Anda dapat meneruskan ekspresi lambda dan akan dikompilasi ke Expression<TDelegate>.
Metode ini Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) menghasilkan MethodCallExpression yang mewakili pemanggilan Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) dirinya sebagai metode generik yang dibangun. Kemudian meneruskan MethodCallExpression ke CreateQuery(Expression) metode dari yang IQueryProvider diwakili oleh Provider properti source
parameter .
Perilaku kueri yang terjadi sebagai akibat dari menjalankan pohon ekspresi yang mewakili panggilan Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) tergantung pada implementasi jenis source
parameter. Perilaku yang diharapkan adalah bahwa ia mengembalikan elemen dari source
yang memenuhi kondisi yang ditentukan oleh predicate
.
Berlaku untuk
Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>)
- Sumber:
- Queryable.cs
- Sumber:
- Queryable.cs
- Sumber:
- Queryable.cs
Memfilter urutan nilai berdasarkan predikat. Indeks setiap elemen digunakan dalam logika fungsi 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, 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)
Jenis parameter
- TSource
Jenis elemen source
.
Parameter
- source
- IQueryable<TSource>
Untuk IQueryable<T> memfilter.
- predicate
- Expression<Func<TSource,Int32,Boolean>>
Fungsi untuk menguji setiap elemen untuk suatu kondisi; parameter kedua fungsi mewakili indeks elemen dalam urutan sumber.
Mengembalikan
Yang IQueryable<T> berisi elemen dari urutan input yang memenuhi kondisi yang ditentukan oleh predicate
.
Pengecualian
source
atau predicate
adalah null
.
Contoh
Contoh kode berikut menunjukkan cara menggunakan Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) untuk memfilter urutan berdasarkan predikat yang menggabungkan indeks setiap elemen.
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
Keterangan
Metode ini memiliki setidaknya satu parameter jenis Expression<TDelegate> yang argumen jenisnya adalah salah satu jenisnya Func<T,TResult> . Untuk parameter ini, Anda dapat meneruskan ekspresi lambda dan akan dikompilasi ke Expression<TDelegate>.
Metode ini Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) menghasilkan MethodCallExpression yang mewakili pemanggilan Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) dirinya sebagai metode generik yang dibangun. Kemudian meneruskan MethodCallExpression ke CreateQuery(Expression) metode dari yang IQueryProvider diwakili oleh Provider properti source
parameter .
Perilaku kueri yang terjadi sebagai akibat dari menjalankan pohon ekspresi yang mewakili panggilan Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) tergantung pada implementasi jenis source
parameter. Perilaku yang diharapkan adalah bahwa ia mengembalikan elemen dari source
yang memenuhi kondisi yang ditentukan oleh predicate
. Indeks setiap elemen sumber disediakan sebagai argumen kedua untuk predicate
.