Filtrování dat v jazyce C# pomocí LINQ
Filtrování odkazuje na operaci omezení sady výsledků tak, aby obsahovala pouze ty prvky, které splňují zadanou podmínku. Označuje se také jako výběr prvků, které odpovídají zadané podmínce.
Důležité
Tyto ukázky používají System.Collections.Generic.IEnumerable<T> zdroj dat. Zdroje dat založené na System.Linq.IQueryProvider použití System.Linq.IQueryable<T> zdrojů dat a stromů výrazů Stromy výrazů mají omezení povolené syntaxe jazyka C#. Každý zdroj dat, například EF Core, IQueryProvider
může navíc uplatňovat další omezení. Projděte si dokumentaci ke zdroji dat.
Následující obrázek ukazuje výsledky filtrování posloupnosti znaků. Predikát operace filtrování určuje, že znak musí být "A".
Standardní metody operátoru dotazu, které provádějí výběr, jsou uvedeny v následující tabulce:
Název metody | Popis | Syntaxe výrazu dotazu jazyka C# | Další informace |
---|---|---|---|
Oftype | Vybere hodnoty v závislosti na jejich schopnosti přetypovat na zadaný typ. | Nevztahuje se. | Enumerable.OfType Queryable.OfType |
Kde | Vybere hodnoty založené na predikátové funkci. | where |
Enumerable.Where Queryable.Where |
Následující příklad používá klauzuli where
k filtrování z pole řetězce, které mají určitou délku.
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
*/
Ekvivalentní dotaz pomocí syntaxe metody se zobrazí v následujícím kódu:
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
*/