Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Filtrowanie odwołuje się do operacji ograniczania zestawu wyników tak, aby zawierała tylko te elementy, które spełniają określony warunek. Jest on również określany jako wybieranie elementów, które pasują do określonego warunku.
Ważne
Te przykłady korzystają ze źródła danych System.Collections.Generic.IEnumerable<T>. Źródła danych oparte na System.Linq.IQueryProvider używają źródeł danych System.Linq.IQueryable<T> i drzew wyrażeń . Drzewa wyrażeń mają ograniczenia w dozwolonej składni języka C#. Ponadto każde źródło danych IQueryProvider, takie jak EF Core, może nakładać więcej ograniczeń. Zapoznaj się z dokumentacją źródła danych.
Poniższa ilustracja przedstawia wyniki filtrowania sekwencji znaków. Predykat operacji filtrowania określa, że znak musi mieć wartość "A".
Standardowe metody operatorów zapytań, które wykonują wybór, są wymienione w poniższej tabeli:
| Nazwa metody | Opis | Składnia wyrażeń zapytań języka C# | Więcej informacji |
|---|---|---|---|
| OfType | Wybiera wartości w zależności od ich zdolności do konwersji na określony typ. | Nie dotyczy. | Enumerable.OfType Queryable.OfType |
| Gdzie | Wybiera wartości oparte na funkcji predykatu. | where |
Enumerable.Where Queryable.Where |
W poniższym przykładzie użyto klauzuli where do filtrowania z tablicy tych ciągów o określonej długości.
Uwaga / Notatka
Typowe źródła danych dla tego obszaru można znaleźć w artykule Omówienie standardowych operatorów zapytań .
string[] words = ["the", "quick", "brown", "fox", "jumps"];
IEnumerable<string> query = from word in words
where word.Length == 3
select word;
foreach (string str in query)
{
Console.WriteLine(str);
}
/* This code produces the following output:
the
fox
*/
Równoważne zapytanie używające składni metody jest wyświetlane w następującym kodzie:
string[] words = ["the", "quick", "brown", "fox", "jumps"];
IEnumerable<string> query =
words.Where(word => word.Length == 3);
foreach (string str in query)
{
Console.WriteLine(str);
}
/* This code produces the following output:
the
fox
*/