Partager via


Comment : rechercher la valeur maximale dans une séquence numérique

Utilisez l'opérateur Max pour rechercher la valeur la plus élevée dans une séquence de valeurs numériques.

Exemple 1

L'exemple suivant recherche la date la plus récente d'embauche parmi tous les employés.

Si vous exécutez cette requête sur l'exemple de base de données Northwind, vous obtenez le résultat suivant : 11/15/1994 12:00:00 AM.

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

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

Console.WriteLine(latestHireDate)

Exemple 2

L'exemple suivant recherche les unités dont le stock est le plus élevé parmi tous les produits.

Si vous exécutez cette requête sur l'exemple de base de données Northwind, vous obtenez le résultat suivant : 125.

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

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

Console.WriteLine(maxUnitsInStock)

Exemple 3

L'exemple suivant utilise Max pour rechercher les Products dont le prix unitaire est le plus élevé dans chaque catégorie. Les résultats sont ensuite répertoriés par catégorie.

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

Si vous exécutez la requête précédente sur l'exemple de base de données Northwind, les résultats se présenteront comme suit :

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

Voir aussi