Gewusst wie: Ermitteln des Maximalwerts in einer numerischen Sequenz (LINQ to SQL)
Aktualisiert: November 2007
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. 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. 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)