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>

Porovnávané IComparer<T> klíče.

Návraty

TSource

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

Výjimky

source je null.

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

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 TSource je typ s možnou hodnotou null, tato metoda vrátí null. Pokud TSource je struktura, která není nullable, například primitivní typ, InvalidOperationException je vyvolán.

Pokud zdrojová sekvence obsahuje pouze hodnoty, které jsou null, tato metoda vrátí 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 implementace IComparable nebo IComparable<T> rozhraní.

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 TSource je typ s možnou hodnotou null, tato metoda vrátí null. Pokud TSource je struktura, která není nullable, například primitivní typ, InvalidOperationException je vyvolán.

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

<format type="text/markdown">

Platí pro