Enumerable.MaxBy Yöntem

Tanım

Aşırı Yüklemeler

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

Belirtilen bir anahtar seçici işlevine ve anahtar karşılaştırıcısına göre genel bir dizideki en büyük değeri döndürür.

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

Belirtilen anahtar seçici işlevine göre genel bir dizideki en büyük değeri döndürür.

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

Kaynak:
Max.cs
Kaynak:
Max.cs
Kaynak:
Max.cs
Kaynak:
Max.cs
Kaynak:
Max.cs

Belirtilen bir anahtar seçici işlevine ve anahtar karşılaştırıcısına göre genel bir dizideki en büyük değeri döndürür.

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

Tür Parametreleri

TSource

öğelerinin sourcetürü.

TKey

Öğeleri karşılaştıracak anahtarın türü.

Parametreler

source
IEnumerable<TSource>

En büyük değerini belirlemek için bir değer dizisi.

keySelector
Func<TSource,TKey>

Her öğenin anahtarını ayıklamak için bir işlev.

comparer
IComparer<TKey>

IComparer<T> Anahtarları karşılaştırmak için.

Döndürülenler

TSource

Dizide en büyük anahtara sahip değer.

Özel durumlar

source, null'e eşittir.

veya source arabirimini uygulamadan IComparableIComparable<T> ayıklanan anahtar yok.

TSource ilkel bir türdür ve kaynak dizisi boş olur.

Örnekler

Aşağıdaki kod örneği, en yüksek değeri denetlerken büyük/küçük harf duyarlılığını yoksaymak için özel bir karşılaştırıcı ile nasıl kullanılacağını MaxBy gösterir.

(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
*/
</Biçim>

Açıklamalar

Kaynak dizisi boşsa, kaynak türüne bağlı olarak iki olası sonuç mümkündür. Boş değer atanabilir bir türse TSource , bu yöntem döndürür null. İlkel tür gibi null atanamaz bir yapıysa TSource , bir InvalidOperationException oluşturulur.

Kaynak dizisi yalnızca olan nulldeğerleri içeriyorsa, bu yöntem döndürür null.

<format type="text/markdown">

Şunlara uygulanır

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

Kaynak:
Max.cs
Kaynak:
Max.cs
Kaynak:
Max.cs
Kaynak:
Max.cs
Kaynak:
Max.cs

Belirtilen anahtar seçici işlevine göre genel bir dizideki en büyük değeri döndürür.

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

Tür Parametreleri

TSource

öğelerinin sourcetürü.

TKey

Öğeleri karşılaştıracak anahtarın türü.

Parametreler

source
IEnumerable<TSource>

En büyük değerini belirlemek için bir değer dizisi.

keySelector
Func<TSource,TKey>

Her öğenin anahtarını ayıklamak için bir işlev.

Döndürülenler

TSource

Dizide en büyük anahtara sahip değer.

Özel durumlar

source, null'e eşittir.

veya source arabirimini uygulamadan IComparableIComparable<T> ayıklanan anahtar yok.

TSource ilkel bir türdür ve kaynak dizisi boş olur.

Örnekler

Aşağıdaki kod örneği, belirli bir özelliğe göre bir koleksiyondaki en yüksek değeri bulmak için nasıl kullanılacağını MaxBy gösterir.

(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
*/
</Biçim>

Açıklamalar

Kaynak dizisi boşsa, kaynak türüne bağlı olarak iki olası sonuç mümkündür. Boş değer atanabilir bir türse TSource , bu yöntem döndürür null. İlkel tür gibi null atanamaz bir yapıysa TSource , bir InvalidOperationException oluşturulur.

Kaynak dizisi yalnızca olan nulldeğerleri içeriyorsa, bu yöntem döndürür null.

<format type="text/markdown">

Şunlara uygulanır