Sdílet prostřednictvím


LINQ – výrazy dotazů (Průvodce programováním v 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 dotazy 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 dotazy 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 Vztahy typů v operacích dotazu LINQ (C#).

  • Dotaz není spuštěn, dokud iteraci proměnných dotazu foreach prohlášení.Další informace naleznete v tématu Úvod do dotazů LINQ (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 standardních operátorů dotazu.

  • 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``1 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.IEnumerabledotazy jsou kompilovány do delegátů.IQueryablea IQueryable dotazy jsou kompilovány do výrazu stromů.Další informace naleznete v tématu Stromy výrazů (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

Základy výrazů dotazů (Průvodce programováním v C#)

Seznámení dotazu základní pojmy a příklady syntaxe dotazu C#.

Postupy: Zápis dotazů LINQ v jazyce C#

Obsahuje příklady několika základních typů výrazů v dotazu.

Postupy: Zpracování výjimek ve výrazech dotazů (Průvodce programováním v C#)

Jak a kdy se přesunout potenciální vyvolání výjimky kód mimo výrazu dotazu.

Postupy: Vyplňování kolekcí objektů z více zdrojů (LINQ)

Použití select příkaz Sloučit data z různých zdrojů do nového typu.

Postupy: Seskupení výsledků dotazu (Průvodce programováním v C#)

Zobrazuje různé způsoby použití group klauzule.

Postupy: Vytvoření vnořené skupiny (Průvodce programováním v C#)

Ukazuje, jak vytvořit vnořené skupiny.

Postupy: Provádění poddotazů na skupinách (Průvodce programováním v C#)

Ukazuje, jak vykazovat v dotazu použít jako zdroj dat nového dotazu.

Postupy: Seskupení výsledků podle sousedních klíčů (Průvodce programováním v C#)

Ukazuje, jak implementovat operátor podprocesu standardní dotaz, který může provádět operace seskupení datových proudů datových zdrojů.

Postupy: Dynamické určování filtrů predikátů při běhu (Průvodce programováním v C#)

Ukazuje, jak zadat libovolný počet hodnot v porovnání rovnosti v where klauzule.

Postupy: Ukládání výsledků dotazu do paměti (Průvodce programováním v C#)

Ukazuje, jak materialize a uložit výsledky dotazu bez použití nutně foreach smyčky.

Postupy: Vrácení dotazu z metody (Průvodce programováním v C#)

Ukazuje, jak vrátit proměnných dotazu z metod a jak jim předat do metody jako vstupní parametry.

Postupy: Provádění vlastních operací spojování (Průvodce programováním v C#)

Ukazuje, jak provádět operace join založené na jakýkoli druh funkce predikátu.

Postupy: Spojení pomocí složených klíčů (Průvodce programováním v C#)

Ukazuje, jak spojit dva zdroje založené na více než jeden klíč odpovídající.

Postupy: Řazení výsledků klauzule join (Průvodce programováním v C#)

Ukazuje, jak lze objednat sekvence, který je vytvořen operací spojení.

Postupy: Provádění vnitřních spojení (Průvodce programováním v C#)

Ukazuje, jak provádět vnitřní spojení v LINQ.

Postupy: Provádění seskupených spojení (Průvodce programováním v C#)

Ukazuje, jak vytvořit spojení seskupené v LINQ.

Postupy: Provedení levých vnějších spojení (Průvodce programováním v C#)

Ukazuje, jak vytvoří levé vnější spojení v LINQ.

Postupy: Zpracování hodnot Null ve výrazech dotazů (Průvodce programováním v C#)

Ukazuje, jak zpracování hodnot null v LINQ dotazy.

Viz také

Úkoly

Návod: Zápis dotazů v C# (LINQ)

Koncepty

Průvodce programováním v C#

Základní operace dotazů LINQ (C#)

Syntaxe využívající dotazy a syntaxe využívající metody v jazyce LINQ (C#)

Přehled standardních operátorů dotazu

Další zdroje

LINQ (Language-Integrated Query)

Klíčová slova dotazu (Referenční dokumentace jazyka C#)

Jak na objekty Linq dotazy práce

čtení a psaní dotazů

Co je kolekce?

odkaz na vše: seznam poskytovatelů LINQ