Enumerable.MaxBy Metod

Definition

Överlagringar

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

Returnerar det maximala värdet i en allmän sekvens enligt en angiven nyckelväljare och nyckeljäxare.

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

Returnerar det maximala värdet i en allmän sekvens enligt en angiven nyckelväljare.

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

Källa:
Max.cs
Källa:
Max.cs
Källa:
Max.cs
Källa:
Max.cs
Källa:
Max.cs

Returnerar det maximala värdet i en allmän sekvens enligt en angiven nyckelväljare och nyckeljäxare.

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

Typparametrar

TSource

Typen av element sourcei .

TKey

Vilken typ av nyckel som element ska jämföras med.

Parametrar

source
IEnumerable<TSource>

En sekvens med värden för att fastställa det maximala värdet för.

keySelector
Func<TSource,TKey>

En funktion för att extrahera nyckeln för varje element.

comparer
IComparer<TKey>

För IComparer<T> att jämföra nycklar.

Returer

TSource

Värdet med den maximala nyckeln i sekvensen.

Undantag

source är null.

Ingen nyckel som extraherats från source implementerar IComparable gränssnittet eller IComparable<T> .

TSource är en primitiv typ och källsekvensen är tom.

Exempel

I följande kodexempel visas hur du använder MaxBy med en anpassad jämförelse för att ignorera skiftlägeskänslighet när du söker efter det maximala värdet.

(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>

Kommentarer

Om källsekvensen är tom är två möjliga utfall möjliga beroende på källtyp. Om TSource är en nullbar typ returnerar nullden här metoden . Om TSource är en icke-nullbar struct, till exempel en primitiv typ, genereras en InvalidOperationException .

Om källsekvensen endast innehåller värden som är nullreturnerar nullden här metoden .

<format type="text/markdown">

Gäller för

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

Källa:
Max.cs
Källa:
Max.cs
Källa:
Max.cs
Källa:
Max.cs
Källa:
Max.cs

Returnerar det maximala värdet i en allmän sekvens enligt en angiven nyckelväljare.

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

Typparametrar

TSource

Typen av element sourcei .

TKey

Vilken typ av nyckel som element ska jämföras med.

Parametrar

source
IEnumerable<TSource>

En sekvens med värden för att fastställa det maximala värdet för.

keySelector
Func<TSource,TKey>

En funktion för att extrahera nyckeln för varje element.

Returer

TSource

Värdet med den maximala nyckeln i sekvensen.

Undantag

source är null.

Ingen nyckel som extraherats från source implementerar IComparable gränssnittet eller IComparable<T> .

TSource är en primitiv typ och källsekvensen är tom.

Exempel

Följande kodexempel visar hur du använder MaxBy för att hitta det maximala värdet i en samling baserat på en specifik egenskap.

(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>

Kommentarer

Om källsekvensen är tom är två möjliga utfall möjliga beroende på källtyp. Om TSource är en nullbar typ returnerar nullden här metoden . Om TSource är en icke-nullbar struct, till exempel en primitiv typ, genereras en InvalidOperationException .

Om källsekvensen endast innehåller värden som är nullreturnerar nullden här metoden .

<format type="text/markdown">

Gäller för