Enumerable.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>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Bir koşula göre bir değer dizisini filtreler. |
Where<TSource>(IEnumerable<TSource>, 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>(IEnumerable<TSource>, Func<TSource,Boolean>)
- Kaynak:
- Where.cs
- Kaynak:
- Where.cs
- Kaynak:
- Where.cs
Bir koşula göre bir değer dizisini filtreler.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static System::Collections::Generic::IEnumerable<TSource> ^ Where(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, bool> ^ predicate);
public static System.Collections.Generic.IEnumerable<TSource> Where<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate);
static member Where : seq<'Source> * Func<'Source, bool> -> seq<'Source>
<Extension()>
Public Function Where(Of TSource) (source As IEnumerable(Of TSource), predicate As Func(Of TSource, Boolean)) As IEnumerable(Of TSource)
Tür Parametreleri
- TSource
öğelerinin source
türü.
Parametreler
- source
- IEnumerable<TSource>
Filtre uygulamak için bir IEnumerable<T> .
Döndürülenler
IEnumerable<T> Giriş dizisinden koşulu karşılayan öğ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>(IEnumerable<TSource>, Func<TSource,Boolean>) gösterir.
List<string> fruits =
new List<string> { "apple", "passionfruit", "banana", "mango",
"orange", "blueberry", "grape", "strawberry" };
IEnumerable<string> query = fruits.Where(fruit => fruit.Length < 6);
foreach (string fruit in query)
{
Console.WriteLine(fruit);
}
/*
This code produces the following output:
apple
mango
grape
*/
' Create a list of strings.
Dim fruits As New List(Of String)(New String() _
{"apple", "passionfruit", "banana", "mango",
"orange", "blueberry", "grape", "strawberry"})
' Restrict the results to those strings whose
' length is less than six.
Dim query As IEnumerable(Of String) =
fruits.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
Console.WriteLine(output.ToString())
' This code produces the following output:
'
' apple
' mango
' grape
Açıklamalar
Bu yöntem ertelenmiş yürütme kullanılarak uygulanır. Hemen dönüş değeri, eylemi gerçekleştirmek için gereken tüm bilgileri depolayan bir nesnedir. Bu yöntemle temsil edilen sorgu, doğrudan yöntemini çağırarak GetEnumerator
veya C# içinde veya For Each
Visual Basic'te kullanarak foreach
nesne numaralandırılana kadar yürütülür.
Sorgu ifadesi söz diziminde bir where
(C#) veya Where
(Visual Basic) yan tümcesi çağrısına Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)dönüşür.
Ayrıca bkz.
Şunlara uygulanır
Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)
- Kaynak:
- Where.cs
- Kaynak:
- Where.cs
- Kaynak:
- Where.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::Collections::Generic::IEnumerable<TSource> ^ Where(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, int, bool> ^ predicate);
public static System.Collections.Generic.IEnumerable<TSource> Where<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,int,bool> predicate);
static member Where : seq<'Source> * Func<'Source, int, bool> -> seq<'Source>
<Extension()>
Public Function Where(Of TSource) (source As IEnumerable(Of TSource), predicate As Func(Of TSource, Integer, Boolean)) As IEnumerable(Of TSource)
Tür Parametreleri
- TSource
öğelerinin source
türü.
Parametreler
- source
- IEnumerable<TSource>
Filtre uygulamak için bir IEnumerable<T> .
Bir koşul için her kaynak öğeyi test etmek için bir işlev; işlevinin ikinci parametresi, kaynak öğenin dizinini temsil eder.
Döndürülenler
IEnumerable<T> Giriş dizisinden koşulu karşılayan öğ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>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) gösterir.
int[] numbers = { 0, 30, 20, 15, 90, 85, 40, 75 };
IEnumerable<int> query =
numbers.Where((number, index) => number <= index * 10);
foreach (int number in query)
{
Console.WriteLine(number);
}
/*
This code produces the following output:
0
20
15
40
*/
' Create an array of integers.
Dim numbers() As Integer = {0, 30, 20, 15, 90, 85, 40, 75}
' Restrict the results to those numbers whose
' values are less than or equal to their index times 10.
Dim query As IEnumerable(Of Integer) =
numbers.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
Console.WriteLine(output.ToString())
' This code produces the following output:
'
' 0
' 20
' 15
' 40
Açıklamalar
Bu yöntem ertelenmiş yürütme kullanılarak uygulanır. Hemen dönüş değeri, eylemi gerçekleştirmek için gereken tüm bilgileri depolayan bir nesnedir. Bu yöntemle temsil edilen sorgu, doğrudan yöntemini çağırarak GetEnumerator
veya C# içinde veya For Each
Visual Basic'te kullanarak foreach
nesne numaralandırılana kadar yürütülür.
öğesinin ilk bağımsız değişkeni predicate
, test yapılacak öğeyi temsil eder. İkinci bağımsız değişken içindeki source
öğesinin sıfır tabanlı dizinini temsil eder.