Freigeben über


Vorgehensweise: Ermitteln des Maximalwerts in einer numerischen Sequenz (LINQ to SQL)

Verwenden Sie den Max-Operator, um den höchsten Wert in einer Sequenz numerischer Werte zu ermitteln.

Beispiel

Im folgenden Beispiel wird das letzte Datum des Arbeitsverhältnisses aller Mitarbeiter gesucht.

Wenn Sie diese Abfrage mit der Beispieldatenbank Northwind ausführen, lautet die Ausgabe 11/15/1994 12:00:00 AM.

Dim latestHireDate = Aggregate emp In db.Employees _
                     Into Max(emp.HireDate)

Console.WriteLine(latestHireDate)
System.Nullable<DateTime> latestHireDate =
    (from emp in db.Employees
    select emp.HireDate)
    .Max();

Console.WriteLine(latestHireDate);

Im folgenden Beispiel wird der höchste Lagerbestand für jedes Produkt gesucht.

Wenn Sie diese Abfrage mit der Beispieldatenbank Northwind ausführen, lautet die Ausgabe 125.

Dim maxUnitsInStock = Aggregate prod In db.Products _
                      Into Max(prod.UnitsInStock)

Console.WriteLine(maxUnitsInStock)
System.Nullable<Int16> maxUnitsInStock =
    (from prod in db.Products
    select prod.UnitsInStock)
    .Max();

Console.WriteLine(maxUnitsInStock);

Im folgenden Beispiel werden mit Max die Products (Produkte) ermittelt, die in jeder Kategorie den höchsten Einzelpreis aufweisen. Die Ausgabe führt dann die Ergebnisse nach Kategorie auf.

Dim maxQuery = From prod In db.Products() _
    Group prod By prod.CategoryID Into grouping = Group _
    Select CategoryID, _
    MostExpensiveProducts = _
        (From prod2 In grouping _
        Where prod2.UnitPrice = _
        grouping.Max(Function(prod3) prod3.UnitPrice))

For Each grp In maxQuery
    Console.WriteLine(grp.CategoryID)
    For Each listing In grp.MostExpensiveProducts
        Console.WriteLine(listing.ProductName)
    Next
Next
var maxQuery =
    from prod in db.Products
    group prod by prod.CategoryID into grouping
    select new
    {
        grouping.Key,
        MostExpensiveProducts =
            from prod2 in grouping
            where prod2.UnitPrice == grouping.Max(prod3 =>
                prod3.UnitPrice)
            select prod2
    };

foreach (var grp in maxQuery)
{
    Console.WriteLine(grp.Key);
    foreach (var listing in grp.MostExpensiveProducts)
    {
        Console.WriteLine(listing.ProductName);
    }
}

Wenn Sie die vorherige Abfrage mit der Beispieldatenbank Northwind ausführen, sehen die Ergebnisse wie folgt aus:

1

Côte de Blaye

2

Vegie-spread

3

Sir Rodney's Marmalade

4

Raclette Courdavault

5

Gnocchi di nonna Alice

6

Thüringer Rostbratwurst

7

Manjimup Dried Apples

8

Carnarvon Tigers

Siehe auch

Konzepte

Herunterladen von Beispieldatenbanken (LINQ to SQL)

Weitere Ressourcen

Aggregatabfragen (LINQ to SQL)