Sdílet prostřednictvím


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

Toto téma uvádí dvěma různými způsoby vytvoření dotazu, který zdrojová data objednávky do skupin a provádí nad každou skupinu poddotazu jednotlivě.Základní technika každý příklad je seskupení prvků zdroje pomocí pokračování s názvem newGroupa potom generování nových poddotazu proti newGroup.Proti každé nové skupiny vytvořené vnější dotaz je spuštěn tento poddotaz.Všimněte si, že v tomto příkladu zejména konečný výstup není skupina, ale plochý posloupnost anonymních typů.

Další informace o skupině naleznete v group – klauzule (Referenční dokumentace jazyka C#).

Další informace o continuations into (Referenční dokumentace jazyka C#).Následující příklad používá jako zdroj dat struktury dat v paměti, ale stejné zásady platí pro jakýkoli druh LINQ zdroje dat.

Příklad

public void QueryMax()
{
    var queryGroupMax =
        from student in students
        group student by student.Year into studentGroup
        select new
        {
            Level = studentGroup.Key,
            HighestScore =
            (from student2 in studentGroup
             select student2.ExamScores.Average()).Max()
        };

    int count = queryGroupMax.Count();
    Console.WriteLine("Number of groups = {0}", count);

    foreach (var item in queryGroupMax)
    {
        Console.WriteLine("  {0} Highest Score={1}", item.Level, item.HighestScore);
    }
}

Probíhá kompilace kódu

V tomto příkladu obsahuje odkazy na objekty, které jsou definovány ve vzorové aplikaci v Postupy: Dotazování na kolekci objektů (Průvodce programováním v C#).Chcete-li sestavit a spustit tuto metodu, vložit jej do StudentClass třídy v dané aplikaci a přidejte volání z Main metoda.

Když je tato metoda přizpůsobit vlastní aplikaci, nezapomeňte, že LINQ vyžaduje verzi 3.5 .NET Framework, a projekt musí obsahovat odkaz na System.Core.dll a použitím směrnice pro System.Linq.LINQ SQL do XML LINQ a LINQ DataSet typy vyžadují další usings a odkazy.Další informace naleznete v tématu Postupy: Vytvoření projektu LINQ.

Viz také

Koncepty

LINQ – výrazy dotazů (Průvodce programováním v C#)