Enumerable.MaxBy Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
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
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">