LINQ dotazu výrazy (Příručka programování C#)
LINQ (Language-Integrated Query)je název pro sadu technologií na základě integrace přímo do jazyka C# (také v jazyce Visual Basic a potenciálně jakékoli jiné možnostiNET jazyk).S LINQ, dotaz je nyní prvotřídní jazyk konstrukce, stejně jako třídy, metody, události a podobně.
Pro vývojáře, který zapisuje dotazy nejlépe viditelný "integrovaným jazyk" část LINQ je výraz dotazu.Výrazy dotazu jsou napsány deklarativní Syntaxe dotazu v C# 3.0.Pomocí syntaxe dotazu můžete provést i složité filtrování, řazení a seskupení operací na zdroje dat s minimální kódu.Použít stejné vzory základního dotazu výraz dotazu a transformace dat. v databázích SQL, ADO.NET soubory dokumentů XML a datové proudy, a.NET kolekcí.
Následující příklad ukazuje dotazu dokončení operace.Dokončení operace zahrnuje vytvoření zdroje dat, definování výrazu dotazu a provádění dotazu v foreach prohlášení.
class LINQQueryExpressions
{
static void Main()
{
// Specify the data source.
int[] scores = new int[] { 97, 92, 81, 60 };
// Define the query expression.
IEnumerable<int> scoreQuery =
from score in scores
where score > 80
select score;
// Execute the query.
foreach (int i in scoreQuery)
{
Console.Write(i + " ");
}
}
}
// Output: 97 92 81
Další informace o Základy LINQ v jazyce C#, viz Začínáme s LINQ v jazyce C#.
Přehled výraz dotazu
Výrazy dotazu lze použít v dotazu a transformaci dat z libovolného LINQ-zdroj dat povoleno.Jediného dotazu můžete například načíst data z databáze SQL a vyrábět datovému proudu XML jako výstup.
Výrazy dotazu lze snadno předlohy, protože používají mnoho známých C# konstrukce jazyka.Další informace naleznete v tématu Začínáme s LINQ v jazyce C#.
Proměnné ve výrazu dotazu jsou všechny silný, ačkoli v mnoha případech není nutné explicitně zadat typ, protože kompilátor lze odvodit jej.Další informace naleznete v tématu Typ relace v LINQ operací dotazu (C#).
Dotaz není spuštěn, dokud iteraci proměnných dotazu foreach prohlášení.Další informace naleznete v tématu Úvod do LINQ dotazy (C#).
V době kompilace výrazy dotazu převedeny na standardní operátor dotazu volání metody podle pravidel specifikace jazyka C#.Dotaz, který lze vyjádřit pomocí syntaxe dotazu lze také vyjádřit pomocí metody syntaxe.Ve většině případů syntaxe dotazu je však čitelnější a výstižné.Další informace naleznete v tématu Specifikace jazyka C# a Přehled operátorů standardní dotaz.
Jako pravidlo při zápisu LINQ dotazy, doporučujeme použít syntaxi dotazu, kdykoli je to možné a metoda syntaxe, kdykoli je to nezbytné.Neexistuje žádné sémantické nebo výkonu rozdíl mezi dva různé formuláře.Výrazy dotazu jsou často více než ekvivalentní výrazy v syntaxi metody čitelný.
Některé operace, jako například dotaz Count nebo Max, mít žádná klauzule dotazu ekvivalentní výrazu a proto musí být vyjádřena jako volání metody.Syntaxi metody lze kombinovat s syntaxe dotazu různými způsoby.Další informace naleznete v tématu Syntaxe využívající dotazy a syntaxe využívající metody v jazyce LINQ (C#).
Výraz stromy nebo delegáty, v závislosti na typu použité k dotazu lze sestavit dotaz výrazy.IEnumerable<T>dotazy jsou kompilovány do delegátů.IQueryablea IQueryable<T> dotazy jsou kompilovány do výrazu stromů.Další informace naleznete v tématu Výraz stromů (C# a Visual Basic).
Následující tabulka obsahuje témata, které poskytují další informace o dotazech a příklady kódu pro běžné úkoly.
Téma |
Description |
---|---|
Seznámení dotazu základní pojmy a příklady syntaxe dotazu C#. |
|
Obsahuje příklady několika základních typů výrazů v dotazu. |
|
Jak: popisovač výjimky ve výrazech dotazu (Příručka programování C#) |
Jak a kdy se přesunout potenciální vyvolání výjimky kód mimo výrazu dotazu. |
Použití select příkaz Sloučit data z různých zdrojů do nového typu. |
|
Zobrazuje různé způsoby použití group klauzule. |
|
Ukazuje, jak vytvořit vnořené skupiny. |
|
Jak: poddotazu provést operaci seskupení (Příručka programování C#) |
Ukazuje, jak vykazovat v dotazu použít jako zdroj dat nového dotazu. |
Jak: seskupit výsledky podle klíče souvislé (Příručka programování C#) |
Ukazuje, jak implementovat operátor podprocesu standardní dotaz, který může provádět operace seskupení datových proudů datových zdrojů. |
Jak: dynamicky určit predikát filtry za běhu (Příručka programování C#) |
Ukazuje, jak zadat libovolný počet hodnot v porovnání rovnosti v where klauzule. |
Jak: Uložit výsledky dotazu do paměti (Příručka programování C#) |
Ukazuje, jak materialize a uložit výsledky dotazu bez použití nutně foreach smyčky. |
Ukazuje, jak vrátit proměnných dotazu z metod a jak jim předat do metody jako vstupní parametry. |
|
Jak: provést vlastní operace spojení (Příručka programování C#) |
Ukazuje, jak provádět operace join založené na jakýkoli druh funkce predikátu. |
Jak: spojení pomocí složeného klíče (Příručka programování C#) |
Ukazuje, jak spojit dva zdroje založené na více než jeden klíč odpovídající. |
Ukazuje, jak lze objednat sekvence, který je vytvořen operací spojení. |
|
Ukazuje, jak provádět vnitřní spojení v LINQ. |
|
Jak: provedení skupinových spojení (C# Příručka programování) |
Ukazuje, jak vytvořit spojení seskupené v LINQ. |
Jak: provedení levé vnější spojení (Příručka programování C#) |
Ukazuje, jak vytvoří levé vnější spojení v LINQ. |
Jak: zpracování hodnot Null ve výrazech dotazu (Příručka programování C#) |
Ukazuje, jak zpracování hodnot null v LINQ dotazy. |
Viz také
Úkoly
Názorný postup: Psaní dotazů v jazyce C# (LINQ)
Koncepty
Základní operace LINQ dotazu (C#)
Syntaxe využívající dotazy a syntaxe využívající metody v jazyce LINQ (C#)
Přehled operátorů standardní dotaz
Další zdroje
LINQ (integrován jazyk dotazu)
Dotaz klíčová slova (C#-Reference)