Sdílet prostřednictvím


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

Základy výraz dotazu (Příručka programování C#)

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

Jak: zápis LINQ dotazů v jazyce 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.

Jak: naplnění kolekce objektů z více zdrojů (LINQ)

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

Jak: skupiny výsledků dotazu (Příručka programování C#)

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

Jak: vytvoření vnořené skupiny (Příručka programování C#)

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.

Jak: dotaz vrátit z metody (Příručka programování C#)

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í.

Jak: výsledky Klauzule Join (Příručka programování C#)

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

Jak: provádět vnitřní spojení (C# Příručka programování)

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

Příručka programování C#

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)

Jak na objekty Linq dotazy práce

čtení a psaní dotazů

Co je kolekce?

odkaz na vše: seznam poskytovatelů LINQ