(0) exportieren Drucken
Alle erweitern
Erweitern Minimieren
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Gewusst wie: Ausführen einer Unterabfrage für eine Gruppierungsoperation (C#-Programmierhandbuch)

Dieses Thema zeigt zwei verschiedene Wege, wie Sie eine Abfrage erstellen können, die die Quelldaten in Gruppen sortiert und dann eine Unterabfrage für jede einzelne Gruppe durchführt. Die zugrunde liegende Technik in jedem Beispiel besteht darin, die Quellelemente zu gruppieren, indem Sie eine Fortsetzung mit dem Namen newGroup verwenden und dann eine neue Unterabfrage für newGroup erstellen. Diese Unterabfrage wird für jede neue Gruppe ausgeführt, die von der äußeren Abfrage erstellt wird. Beachten Sie, dass in diesem speziellen Beispiel die Endausgabe keine Gruppe ist, sondern eine flache Sequenz mit anonymen Typen.

Weitere Informationen zum Gruppieren finden Sie unter group-Klausel (C#-Referenz).

Weitere Informationen zu Fortsetzungen finden Sie unter into (C#-Referenz). Im folgenden Beispiel wird eine speicherinterne Datenstruktur als Datenquelle verwendet, die gleichen Prinzipien gelten jedoch auch für andere LINQ-Datenquellen.


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);
    }
}


Dieses Beispiel enthält Verweise auf Objekte, die in der Beispielanwendung in Gewusst wie: Abfragen einer Auflistung von Objekten (C#-Programmierhandbuch) definiert werden. Um diese Methode zu kompilieren und auszuführen, fügen Sie sie in die StudentClass-Klasse dieser Anwendung ein, und fügen Sie ihr von der Main-Methode einen Aufruf hinzu.

Wenn Sie diese Methode an Ihre eigene Anwendung anpassen, beachten Sie, dass LINQ .NET Framework Version 3.5 benötigt und dass das Projekt einen Verweis auf System.Core.dll enthalten und eine Direktive für System.Linq verwenden muss. LINQ-to-SQL-, LINQ-to-XML- und LINQ-to-DataSet-Typen erfordern zusätzliche Usings und Verweise. Weitere Informationen hierzu finden Sie unter Gewusst wie: Erstellen eines LINQ-Projekts.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft