Enumerable.MaxBy Metoda

Definice

Přetížení

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

Vrátí maximální hodnotu v obecné sekvenci podle zadané funkce selektoru klíče a porovnávače klíčů.

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

Vrátí maximální hodnotu v obecné sekvenci podle zadané funkce selektoru klíče.

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

Zdroj:
Max.cs
Zdroj:
Max.cs
Zdroj:
Max.cs
Zdroj:
Max.cs
Zdroj:
Max.cs

Vrátí maximální hodnotu v obecné sekvenci podle zadané funkce selektoru klíče a porovnávače klíčů.

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

Parametry typu

TSource

Typ prvků source.

TKey

Typ klíče pro porovnání prvků.

Parametry

source
IEnumerable<TSource>

Posloupnost hodnot k určení maximální hodnoty.

keySelector
Func<TSource,TKey>

Funkce, která extrahuje klíč pro každý prvek.

comparer
IComparer<TKey>

IComparer<T> k porovnání klíčů.

Návraty

TSource

Hodnota s maximálním klíčem v sekvenci.

Výjimky

source je null.

Žádný klíč extrahovaný z source implementuje rozhraní IComparable nebo IComparable<T>.

TSource je primitivní typ a zdrojová sekvence je prázdná.

Příklady

Následující příklad kódu ukazuje použití MaxBy s vlastním porovnávačem k ignorování citlivosti malých a velkých písmen při kontrole maximální hodnoty.

(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
*/
</Formát>

Poznámky

Pokud je zdrojová sekvence prázdná, jsou možné dva možné výsledky v závislosti na typu zdroje. Pokud je TSource typu s možnou hodnotou null, vrátí tato metoda null. Pokud je TSource nenulovou strukturou, například primitivní typ, vyvolá se InvalidOperationException.

Pokud zdrojová sekvence obsahuje pouze hodnoty, které jsou null, vrátí tato metoda null.

<format type="text/markdown">

Platí pro

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

Zdroj:
Max.cs
Zdroj:
Max.cs
Zdroj:
Max.cs
Zdroj:
Max.cs
Zdroj:
Max.cs

Vrátí maximální hodnotu v obecné sekvenci podle zadané funkce selektoru klíče.

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

Parametry typu

TSource

Typ prvků source.

TKey

Typ klíče pro porovnání prvků.

Parametry

source
IEnumerable<TSource>

Posloupnost hodnot k určení maximální hodnoty.

keySelector
Func<TSource,TKey>

Funkce, která extrahuje klíč pro každý prvek.

Návraty

TSource

Hodnota s maximálním klíčem v sekvenci.

Výjimky

source je null.

Žádný klíč extrahovaný z source implementuje rozhraní IComparable nebo IComparable<T>.

TSource je primitivní typ a zdrojová sekvence je prázdná.

Příklady

Následující příklad kódu ukazuje, jak použít MaxBy k nalezení maximální hodnoty v kolekci na základě konkrétní vlastnosti.

(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
*/
</Formát>

Poznámky

Pokud je zdrojová sekvence prázdná, jsou možné dva možné výsledky v závislosti na typu zdroje. Pokud je TSource typu s možnou hodnotou null, vrátí tato metoda null. Pokud je TSource nenulovou strukturou, například primitivní typ, vyvolá se InvalidOperationException.

Pokud zdrojová sekvence obsahuje pouze hodnoty, které jsou null, vrátí tato metoda null.

<format type="text/markdown">

Platí pro