Enumerable.MaxBy Metoda

Definicja

Przeciążenia

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

Zwraca wartość maksymalną w sekwencji ogólnej zgodnie z określoną funkcją selektora kluczy i modułem porównującym klucz.

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

Zwraca wartość maksymalną w sekwencji ogólnej zgodnie z określoną funkcją selektora kluczy.

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

Źródło:
Max.cs
Źródło:
Max.cs
Źródło:
Max.cs
Źródło:
Max.cs
Źródło:
Max.cs

Zwraca wartość maksymalną w sekwencji ogólnej zgodnie z określoną funkcją selektora kluczy i modułem porównującym klucz.

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 elementów elementu source.

TKey

Typ klucza do porównywania elementów według.

Parametry

source
IEnumerable<TSource>

Sekwencja wartości określających maksymalną wartość.

keySelector
Func<TSource,TKey>

Funkcja wyodrębniania klucza dla każdego elementu.

comparer
IComparer<TKey>

Element IComparer<T> do porównywania kluczy.

Zwraca

TSource

Wartość z maksymalnym kluczem w sekwencji.

Wyjątki

Parametr source ma wartość null.

Żaden klucz nie został wyodrębniony z source implementacji interfejsu IComparable lub IComparable<T> .

TSource jest typem pierwotnym, a sekwencja źródłowa jest pusta.

Przykłady

W poniższym przykładzie kodu pokazano, jak używać z MaxBy niestandardowym modułem porównującym w celu ignorowania poufności wielkości liter podczas sprawdzania maksymalnej wartości.

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

Uwagi

Jeśli sekwencja źródłowa jest pusta, możliwe są dwa możliwe wyniki w zależności od typu źródła. Jeśli TSource jest typem dopuszczalnym wartości null, ta metoda zwraca wartość null. Jeśli TSource jest niepustą strukturą, taką jak typ pierwotny, InvalidOperationException jest zgłaszana wartość .

Jeśli sekwencja źródłowa zawiera tylko wartości, które są null, ta metoda zwraca wartość null.

<format type="text/markdown">

Dotyczy

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

Źródło:
Max.cs
Źródło:
Max.cs
Źródło:
Max.cs
Źródło:
Max.cs
Źródło:
Max.cs

Zwraca wartość maksymalną w sekwencji ogólnej zgodnie z określoną funkcją selektora kluczy.

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 elementów elementu source.

TKey

Typ klucza do porównywania elementów według.

Parametry

source
IEnumerable<TSource>

Sekwencja wartości określających maksymalną wartość.

keySelector
Func<TSource,TKey>

Funkcja wyodrębniania klucza dla każdego elementu.

Zwraca

TSource

Wartość z maksymalnym kluczem w sekwencji.

Wyjątki

Parametr source ma wartość null.

Żaden klucz nie został wyodrębniony z source implementacji interfejsu IComparable lub IComparable<T> .

TSource jest typem pierwotnym, a sekwencja źródłowa jest pusta.

Przykłady

Poniższy przykład kodu przedstawia sposób znajdowania MaxBy maksymalnej wartości w kolekcji na podstawie określonej właściwości.

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

Uwagi

Jeśli sekwencja źródłowa jest pusta, możliwe są dwa możliwe wyniki w zależności od typu źródła. Jeśli TSource jest typem dopuszczalnym wartości null, ta metoda zwraca wartość null. Jeśli TSource jest niepustą strukturą, taką jak typ pierwotny, InvalidOperationException jest zgłaszana wartość .

Jeśli sekwencja źródłowa zawiera tylko wartości, które są null, ta metoda zwraca wartość null.

<format type="text/markdown">

Dotyczy