Enumerable.MaxBy Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перегрузки
| Имя | Описание |
|---|---|
| MaxBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
Возвращает максимальное значение в универсальной последовательности в соответствии с указанной функцией селектора ключей и компратором ключей. |
| MaxBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Возвращает максимальное значение в универсальной последовательности в соответствии с указанной функцией селектора ключей. |
MaxBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)
- Исходный код:
- Max.cs
- Исходный код:
- Max.cs
- Исходный код:
- Max.cs
- Исходный код:
- Max.cs
- Исходный код:
- Max.cs
Возвращает максимальное значение в универсальной последовательности в соответствии с указанной функцией селектора ключей и компратором ключей.
public:
generic <typename TSource, typename TKey>
[System::Runtime::CompilerServices::Extension]
static TSource MaxBy(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, TKey> ^ keySelector, System::Collections::Generic::IComparer<TKey> ^ comparer);
public static TSource? MaxBy<TSource,TKey>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector, System.Collections.Generic.IComparer<TKey>? comparer);
static member MaxBy : seq<'Source> * Func<'Source, 'Key> * System.Collections.Generic.IComparer<'Key> -> 'Source
<Extension()>
Public Function MaxBy(Of TSource, TKey) (source As IEnumerable(Of TSource), keySelector As Func(Of TSource, TKey), comparer As IComparer(Of TKey)) As TSource
Параметры типа
- TSource
Тип элементов source.
- TKey
Тип ключа для сравнения элементов.
Параметры
- source
- IEnumerable<TSource>
Последовательность значений для определения максимального значения.
- keySelector
- Func<TSource,TKey>
Функция для извлечения ключа для каждого элемента.
- comparer
- IComparer<TKey>
IComparer<T> для сравнения ключей.
Возвращаемое значение
Значение с максимальным ключом в последовательности.
Исключения
source
null.
Ключ, извлеченный из source, не реализует интерфейс IComparable или IComparable<T>.
TSource — это примитивный тип, и исходная последовательность пуста.
Примеры
В следующем примере кода показано, как использовать MaxBy с пользовательским сравнивателем для пропуска конфиденциальности регистра при проверке максимального значения.
(string Name, int Quantity)[] inventory =
{
("apple", 10),
("BANANA", 5),
("Cherry", 20)
};
// Find the product with the maximum name alphabetically, ignoring casing differences.
// 'C' is correctly identified as greater than 'a' and 'B' when case is ignored.
var maxIgnoreCase = inventory.MaxBy(item => item.Name, StringComparer.OrdinalIgnoreCase);
Console.WriteLine($"Case-insensitive comparison: {maxIgnoreCase.Name}");
/*
This code produces the following output:
Case-insensitive comparison: Cherry
*/
</Формат>
Комментарии
Если исходная последовательность пуста, возможны два возможных результата в зависимости от типа источника. Если TSource является типом, допускаемым значением NULL, этот метод возвращает null. Если TSource является ненулевой структурой, например примитивным типом, создается InvalidOperationException.
Если исходная последовательность содержит только значения, null, этот метод возвращает null.
<format type="text/markdown">
Применяется к
MaxBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)
- Исходный код:
- Max.cs
- Исходный код:
- Max.cs
- Исходный код:
- Max.cs
- Исходный код:
- Max.cs
- Исходный код:
- Max.cs
Возвращает максимальное значение в универсальной последовательности в соответствии с указанной функцией селектора ключей.
public:
generic <typename TSource, typename TKey>
[System::Runtime::CompilerServices::Extension]
static TSource MaxBy(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, TKey> ^ keySelector);
public static TSource? MaxBy<TSource,TKey>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector);
static member MaxBy : seq<'Source> * Func<'Source, 'Key> -> 'Source
<Extension()>
Public Function MaxBy(Of TSource, TKey) (source As IEnumerable(Of TSource), keySelector As Func(Of TSource, TKey)) As TSource
Параметры типа
- TSource
Тип элементов source.
- TKey
Тип ключа для сравнения элементов.
Параметры
- source
- IEnumerable<TSource>
Последовательность значений для определения максимального значения.
- keySelector
- Func<TSource,TKey>
Функция для извлечения ключа для каждого элемента.
Возвращаемое значение
Значение с максимальным ключом в последовательности.
Исключения
source
null.
Ключ, извлеченный из source, не реализует интерфейс IComparable или IComparable<T>.
TSource — это примитивный тип, и исходная последовательность пуста.
Примеры
В следующем примере кода показано, как использовать MaxBy для поиска максимального значения в коллекции на основе определенного свойства.
(string Name, decimal Salary, int Age)[] employees =
{
("Mahmoud", 1000m, 22),
("John", 1200m, 28),
("Sara", 2000m, 32),
("Hadi", 1750m, 27),
("Lana", 1500m, 24),
("Luna", 1850m, 33)
};
// Get the oldest employee in the company.
var oldestEmployee = employees.MaxBy(employee => employee.Age);
Console.WriteLine($"Name: {oldestEmployee.Name}, Age: {oldestEmployee.Age}, Salary: ${oldestEmployee.Salary}");
/*
This code produces the following output:
Name: Luna, Age: 33, Salary: $1850
*/
</Формат>
Комментарии
Если исходная последовательность пуста, возможны два возможных результата в зависимости от типа источника. Если TSource является типом, допускаемым значением NULL, этот метод возвращает null. Если TSource является ненулевой структурой, например примитивным типом, создается InvalidOperationException.
Если исходная последовательность содержит только значения, null, этот метод возвращает null.
<format type="text/markdown">