查找数值序列中的最小值

使用 Min 运算符可返回数值序列中的最小值。

示例 1

下面的示例查找所有产品的最低单价。

如果您对 Northwind 示例数据库运行此查询,则输出为:2.5000

System.Nullable<Decimal> lowestUnitPrice =
    (from prod in db.Products
    select prod.UnitPrice)
    .Min();

Console.WriteLine(lowestUnitPrice);
Dim lowestUnitPrice = Aggregate prod In db.Products _
                      Into Min(prod.UnitPrice)

Console.WriteLine(lowestUnitPrice)

示例 2

下面的示例查找所有订单的最低运费额。

如果您对 Northwind 示例数据库运行此查询,则输出为:0.0200

System.Nullable<Decimal> lowestFreight =
    (from ord in db.Orders
    select ord.Freight)
    .Min();

Console.WriteLine(lowestFreight);
Dim lowestFreight = Aggregate ord In db.Orders _
                    Into Min(ord.Freight)

Console.WriteLine(lowestFreight)

示例 3

下面的示例使用 Min 查找每个类别中单价最低的 Products。 输出按类别排列。

var minQuery =
    from prod in db.Products
    group prod by prod.CategoryID into grouping
    select new
    {
        grouping.Key,
        LeastExpensiveProducts =
            from prod2 in grouping
            where prod2.UnitPrice == grouping.Min(prod3 =>
            prod3.UnitPrice)
            select prod2
    };

foreach (var grp in minQuery)
{
    Console.WriteLine(grp.Key);
    foreach (var listing in grp.LeastExpensiveProducts)
    {
        Console.WriteLine(listing.ProductName);
    }
}
Dim minQuery = From prod In db.Products() _
               Group prod By prod.CategoryID Into grouping = Group _
               Select CategoryID, LeastExpensiveProducts = _
                   From prod2 In grouping _
                   Where prod2.UnitPrice = grouping.Min(Function(prod3) _
                   prod3.UnitPrice)

For Each grp In minQuery
    Console.WriteLine(grp.CategoryID)
    For Each listing In grp.LeastExpensiveProducts
        Console.WriteLine(listing.ProductName)
    Next
Next

如果您对 Northwind 示例数据库运行上一个查询,所得到的结果将与如下内容类似:

1

Guaraná Fantástica

2

Aniseed Syrup

3

Teatime Chocolate Biscuits

4

Geitost

5

Filo Mix

6

Tourtière

7

Longlife Tofu

8

Konbu

请参阅