Enumerable.MaxBy Metode

Definisi

Overload

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

Mengembalikan nilai maksimum dalam urutan generik sesuai dengan fungsi pemilih kunci dan pembanding kunci tertentu.

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

Mengembalikan nilai maksimum dalam urutan generik sesuai dengan fungsi pemilih kunci tertentu.

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

Sumber:
Max.cs
Sumber:
Max.cs
Sumber:
Max.cs
Sumber:
Max.cs
Sumber:
Max.cs

Mengembalikan nilai maksimum dalam urutan generik sesuai dengan fungsi pemilih kunci dan pembanding kunci tertentu.

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

Jenis parameter

TSource

Jenis elemen source.

TKey

Jenis kunci untuk membandingkan elemen dengan.

Parameter

source
IEnumerable<TSource>

Urutan nilai untuk menentukan nilai maksimum.

keySelector
Func<TSource,TKey>

Fungsi untuk mengekstrak kunci untuk setiap elemen.

comparer
IComparer<TKey>

IComparer<T> untuk membandingkan kunci.

Mengembalikan

TSource

Nilai dengan kunci maksimum dalam urutan.

Pengecualian

source null.

Tidak ada kunci yang diekstrak dari source mengimplementasikan antarmuka IComparable atau IComparable<T>.

TSource adalah jenis primitif dan urutan sumber kosong.

Contoh

Contoh kode berikut menunjukkan cara menggunakan MaxBy dengan perbandingan kustom untuk mengabaikan sensitivitas kasus saat memeriksa nilai maksimum.

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

Keterangan

Jika urutan sumber kosong, dua kemungkinan hasil dimungkinkan tergantung pada jenis sumber. Jika TSource adalah jenis nullable, metode ini mengembalikan null. Jika TSource adalah struct yang tidak dapat diubah ke null, seperti jenis primitif, InvalidOperationException dilemparkan.

Jika urutan sumber hanya berisi nilai yang null, metode ini mengembalikan null.

<format type="text/markdown">

Berlaku untuk

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

Sumber:
Max.cs
Sumber:
Max.cs
Sumber:
Max.cs
Sumber:
Max.cs
Sumber:
Max.cs

Mengembalikan nilai maksimum dalam urutan generik sesuai dengan fungsi pemilih kunci tertentu.

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

Jenis parameter

TSource

Jenis elemen source.

TKey

Jenis kunci untuk membandingkan elemen dengan.

Parameter

source
IEnumerable<TSource>

Urutan nilai untuk menentukan nilai maksimum.

keySelector
Func<TSource,TKey>

Fungsi untuk mengekstrak kunci untuk setiap elemen.

Mengembalikan

TSource

Nilai dengan kunci maksimum dalam urutan.

Pengecualian

source null.

Tidak ada kunci yang diekstrak dari source mengimplementasikan antarmuka IComparable atau IComparable<T>.

TSource adalah jenis primitif dan urutan sumber kosong.

Contoh

Contoh kode berikut menunjukkan cara menggunakan MaxBy untuk menemukan nilai maksimum dalam koleksi berdasarkan properti tertentu.

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

Keterangan

Jika urutan sumber kosong, dua kemungkinan hasil dimungkinkan tergantung pada jenis sumber. Jika TSource adalah jenis nullable, metode ini mengembalikan null. Jika TSource adalah struct yang tidak dapat diubah ke null, seperti jenis primitif, InvalidOperationException dilemparkan.

Jika urutan sumber hanya berisi nilai yang null, metode ini mengembalikan null.

<format type="text/markdown">

Berlaku untuk