Как найти наименьшее значение в числовой последовательности (LINQ to SQL)
Обновлен: November 2007
Для возвращения минимального значения из последовательности числовых значений используется оператор Min.
Пример
В следующем примере выполняется поиск минимальной цены продукта.
Если этот запрос запустить в образце базы данных Northwind, будут получены следующие выходные данные: 2.5000.
Dim lowestUnitPrice = Aggregate prod In db.Products _
Into Min(prod.UnitPrice)
Console.WriteLine(lowestUnitPrice)
System.Nullable<Decimal> lowestUnitPrice =
(from prod in db.Products
select prod.UnitPrice)
.Min();
Console.WriteLine(lowestUnitPrice);
В следующем примере выполняется поиск минимального объема доставки для заказа.
Если этот запрос запустить в образце базы данных Northwind, будут получены следующие выходные данные: 0.0200.
Dim lowestFreight = Aggregate ord In db.Orders _
Into Min(ord.Freight)
Console.WriteLine(lowestFreight)
System.Nullable<Decimal> lowestFreight =
(from ord in db.Orders
select ord.Freight)
.Min();
Console.WriteLine(lowestFreight);
В следующем примере для поиска Products, имеющего минимальную цену за единицу в каждой категории используется функция Min. Результат упорядочивается по категории.
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
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);
}
}
Если выполнить предыдущий запрос для учебной базы данных "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
См. также
Основные понятия
Загрузка образцов баз данных (LINQ to SQL)