Megosztás a következőn keresztül:


Adatok szűrése c# nyelven a LINQ használatával

A szűrés azt jelenti, hogy az eredményhalmaz csak azokat az elemeket tartalmazza, amelyek megfelelnek egy adott feltételnek. Más néven a megadott feltételnek megfelelő elemek kijelölése .

Fontos

Ezek a minták adatforrást System.Collections.Generic.IEnumerable<T> használnak. A System.Linq.IQueryProvider alapú adatforrások a System.Linq.IQueryable<T> adatforrásokat és a kifejezésfákat használják. A kifejezésfák korlátozottan használhatják az engedélyezett C# szintaxist. Emellett minden adatforrás IQueryProvider , például az EF Core további korlátozásokat is alkalmazhat. Ellenőrizze az adatforrás dokumentációját.

Az alábbi ábrán egy karaktersorozat szűrésének eredményei láthatók. A szűrési művelet predikátuma azt határozza meg, hogy a karakternek "A" karakternek kell lennie.

LINQ-szűrési műveletet bemutató diagram

A kijelölést végző szabványos lekérdezési operátor-metódusok az alábbi táblázatban találhatók:

Metódus neve Leírás C# lekérdezési kifejezés szintaxisa További információ
OfType Az értékeket attól függően választja ki, hogy egy adott típusba szeretnének-e beszűkíteni őket. Nem alkalmazható. Enumerable.OfType

Queryable.OfType
Hol Predikátumfüggvényen alapuló értékeket jelöl ki. where Enumerable.Where

Queryable.Where

Az alábbi példa a where záradék használatával szűr egy tömbből az adott hosszúságú sztringeket.

Megjegyzés:

A terület gyakori adatforrásai a Standard lekérdezési operátorok áttekintése című cikkben találhatóak.

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
*/

A metódusszintaxissal egyenértékű lekérdezés a következő kódban jelenik meg:

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
*/

Lásd még