Enumerable.MaxBy Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
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
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">