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> для сравнения ключей.

Возвращаемое значение

TSource

Значение с максимальным ключом в последовательности.

Исключения

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>

Функция для извлечения ключа для каждого элемента.

Возвращаемое значение

TSource

Значение с максимальным ключом в последовательности.

Исключения

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">

Применяется к