Enumerable.MaxBy Metodo

Definizione

Overload

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

Restituisce il valore massimo in una sequenza generica in base a una funzione del selettore di chiave e a un operatore di confronto dei tasti specificato.

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

Restituisce il valore massimo in una sequenza generica in base a una funzione del selettore di chiave specificata.

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

Origine:
Max.cs
Origine:
Max.cs
Origine:
Max.cs
Origine:
Max.cs
Origine:
Max.cs

Restituisce il valore massimo in una sequenza generica in base a una funzione del selettore di chiave e a un operatore di confronto dei tasti specificato.

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

Parametri di tipo

TSource

Tipo degli elementi di source.

TKey

Tipo di chiave per cui confrontare gli elementi.

Parametri

source
IEnumerable<TSource>

Sequenza di valori per determinare il valore massimo di .

keySelector
Func<TSource,TKey>

Funzione per estrarre la chiave per ogni elemento.

comparer
IComparer<TKey>

Il IComparer<T> per confrontare le chiavi.

Valori restituiti

TSource

Valore con la chiave massima nella sequenza.

Eccezioni

source è null.

Nessuna chiave estratta da source implementa l'interfaccia IComparable o IComparable<T>.

TSource è un tipo primitivo e la sequenza di origine è vuota.

Esempio

Nell'esempio di codice seguente viene illustrato come usare MaxBy con un operatore di confronto personalizzato per ignorare la distinzione tra maiuscole e minuscole durante il controllo del valore massimo.

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

Commenti

Se la sequenza di origine è vuota, sono possibili due risultati possibili a seconda del tipo di origine. Se TSource è un tipo nullable, questo metodo restituisce null. Se TSource è uno struct non nullable, ad esempio un tipo primitivo, viene generata una InvalidOperationException.

Se la sequenza di origine contiene solo valori null, questo metodo restituisce null.

<format type="text/markdown">

Si applica a

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

Origine:
Max.cs
Origine:
Max.cs
Origine:
Max.cs
Origine:
Max.cs
Origine:
Max.cs

Restituisce il valore massimo in una sequenza generica in base a una funzione del selettore di chiave specificata.

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

Parametri di tipo

TSource

Tipo degli elementi di source.

TKey

Tipo di chiave per cui confrontare gli elementi.

Parametri

source
IEnumerable<TSource>

Sequenza di valori per determinare il valore massimo di .

keySelector
Func<TSource,TKey>

Funzione per estrarre la chiave per ogni elemento.

Valori restituiti

TSource

Valore con la chiave massima nella sequenza.

Eccezioni

source è null.

Nessuna chiave estratta da source implementa l'interfaccia IComparable o IComparable<T>.

TSource è un tipo primitivo e la sequenza di origine è vuota.

Esempio

Nell'esempio di codice seguente viene illustrato come usare MaxBy per trovare il valore massimo in una raccolta in base a una proprietà specifica.

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

Commenti

Se la sequenza di origine è vuota, sono possibili due risultati possibili a seconda del tipo di origine. Se TSource è un tipo nullable, questo metodo restituisce null. Se TSource è uno struct non nullable, ad esempio un tipo primitivo, viene generata una InvalidOperationException.

Se la sequenza di origine contiene solo valori null, questo metodo restituisce null.

<format type="text/markdown">

Si applica a