LINQ umožňuje psát dotazy pro různé typy dat bez nutnosti opouštět syntaxi C#. Namísto psaní SQL dotazů jako textových řetězců využíváte plnou podporu kompilátoru a IntelliSense.
—
LINQ nabízí dvě cesty, jak dotaz zformulovat. Jsou funkčně rovnocenné a lze je kombinovat.
Tento styl připomíná SQL a je často čitelnější pro složité dotazy.
var dospeliUzivatele = from u in uzivatele
where u.Vek >= 18
orderby u.Prijmeni
select u.Jmeno;
Využívá extension metody a lambda výrazy. Je stručnější a v praxi o něco častěji používaný.
var dospeliUzivatele = uzivatele
.Where(u => u.Vek >= 18)
.OrderBy(u => u.Prijmeni)
.Select(u => u.Jmeno);
—
| Operátor | Účel |
|---|---|
| Where | Filtrování prvků podle podmínky. |
| Select | Transformace (projekce) prvků na nový formát. |
| OrderBy | Vzestupné řazení dat. |
| GroupBy | Seskupení prvků podle určitého klíče. |
| First/FirstOrDefault | Vrátí první prvek kolekce (nebo null, pokud je prázdná). |
| ToList/ToArray | Okamžité vykonání dotazu a převod na konkrétní kolekci. |
—
Toto je klíčový koncept LINQ. Dotaz se nevykoná ve chvíli, kdy ho definujete, ale až ve chvíli, kdy začnete k jeho výsledkům přistupovat (např. v cyklu `foreach`).
To umožňuje efektivní práci s daty – dotaz můžete postupně skládat a on se provede jako jeden optimalizovaný celek až v momentě potřeby.
—
Podle toho, na jaká data se dotazujete, používá .NET různé „poskytovatele“:
Související články:
Tagy: programming dot-net csharp linq data-querying development