Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csSpAqMm 176 of 509 menu
◀ ▶

MinBy и MaxBy в LINQ

Методы MinBy и MaxBy возвращают исходный элемент, а не только ключ сравнения. При равных ключах остаётся первый из них в порядке перечисления.

Из двух записей с разным Score MaxBy выберет имя "b" - у него балл 5:

var items = new[] { new { Name = "a", Score = 2 }, new { Name = "b", Score = 5 } }; var best = items.MaxBy(i => i.Score); Console.WriteLine(best.Name);

При равных ключах остаётся первый элемент. У "x" и "y" балл 3, поэтому остаётся "x". На пустой последовательности результат сравнивают с default:

var items = new[] { new { Name = "x", Score = 3 }, new { Name = "y", Score = 3 } }; var low = items.MinBy(i => i.Score); Console.WriteLine(low?.Name); var empty = Array.Empty<(string Name, int Score)>(); Console.WriteLine(empty.MinBy(i => i.Score) == default);

Выберите самый дешёвый товар и выведите его название.

Найдите событие с самой поздней датой и выведите его название.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить