Enumerable.MaxBy Método

Definición

Sobrecargas

Nombre Description
MaxBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)

Devuelve el valor máximo de una secuencia genérica según una función de selector de claves y un comparador de claves especificados.

MaxBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Devuelve el valor máximo de una secuencia genérica según una función de selector de claves especificada.

MaxBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)

Source:
Max.cs
Source:
Max.cs
Source:
Max.cs
Source:
Max.cs
Source:
Max.cs

Devuelve el valor máximo de una secuencia genérica según una función de selector de claves y un comparador de claves especificados.

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

Parámetros de tipo

TSource

Tipo de los elementos de source.

TKey

Tipo de clave por el que se van a comparar los elementos.

Parámetros

source
IEnumerable<TSource>

Secuencia de valores de para determinar el valor máximo de.

keySelector
Func<TSource,TKey>

Función para extraer la clave de cada elemento.

comparer
IComparer<TKey>

que IComparer<T> se va a comparar las claves.

Devoluciones

TSource

Valor con la clave máxima de la secuencia.

Excepciones

source es null.

Ninguna clave extraída de source implementa la IComparable interfaz o IComparable<T> .

TSource es un tipo primitivo y la secuencia de origen está vacía.

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar MaxBy con un comparador personalizado para omitir la distinción entre mayúsculas y minúsculas al comprobar el valor máximo.

(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
*/
</format>

Comentarios

Si la secuencia de origen está vacía, se pueden realizar dos resultados posibles en función del tipo de origen. Si TSource es un tipo que acepta valores NULL, este método devuelve null. Si TSource es una estructura que no acepta valores NULL, como un tipo primitivo, se produce una InvalidOperationException excepción .

Si la secuencia de origen contiene solo valores que son null, este método devuelve null.

<format type="text/markdown">

Se aplica a

MaxBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Source:
Max.cs
Source:
Max.cs
Source:
Max.cs
Source:
Max.cs
Source:
Max.cs

Devuelve el valor máximo de una secuencia genérica según una función de selector de claves especificada.

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

Parámetros de tipo

TSource

Tipo de los elementos de source.

TKey

Tipo de clave por el que se van a comparar los elementos.

Parámetros

source
IEnumerable<TSource>

Secuencia de valores de para determinar el valor máximo de.

keySelector
Func<TSource,TKey>

Función para extraer la clave de cada elemento.

Devoluciones

TSource

Valor con la clave máxima de la secuencia.

Excepciones

source es null.

Ninguna clave extraída de source implementa la IComparable interfaz o IComparable<T> .

TSource es un tipo primitivo y la secuencia de origen está vacía.

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar MaxBy para buscar el valor máximo en una colección basada en una propiedad específica.

(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
*/
</format>

Comentarios

Si la secuencia de origen está vacía, se pueden realizar dos resultados posibles en función del tipo de origen. Si TSource es un tipo que acepta valores NULL, este método devuelve null. Si TSource es una estructura que no acepta valores NULL, como un tipo primitivo, se produce una InvalidOperationException excepción .

Si la secuencia de origen contiene solo valores que son null, este método devuelve null.

<format type="text/markdown">

Se aplica a