Enumerable.MaxBy Methode

Definition

Überlädt

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

Gibt den Maximalwert in einer generischen Sequenz gemäß einer angegebenen Schlüsselmarkierfunktion und einem Schlüsselabgleich zurück.

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

Gibt den Maximalwert in einer generischen Sequenz gemäß einer angegebenen Schlüsselmarkierfunktion zurück.

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

Quelle:
Max.cs
Quelle:
Max.cs
Quelle:
Max.cs
Quelle:
Max.cs
Quelle:
Max.cs

Gibt den Maximalwert in einer generischen Sequenz gemäß einer angegebenen Schlüsselmarkierfunktion und einem Schlüsselabgleich zurück.

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

Typparameter

TSource

Der Typ der Elemente von source.

TKey

Der Schlüsseltyp, nach dem Elemente verglichen werden sollen.

Parameter

source
IEnumerable<TSource>

Eine Abfolge von Werten, um den Maximalwert zu bestimmen.

keySelector
Func<TSource,TKey>

Eine Funktion zum Extrahieren des Schlüssels für jedes Element.

comparer
IComparer<TKey>

Der IComparer<T> zu vergleichende Schlüssel.

Gibt zurück

TSource

Der Wert mit dem maximalen Schlüssel in der Sequenz.

Ausnahmen

source ist null.

Kein Schlüssel, der aus source der Implementierung oder IComparable<T>IComparable Schnittstelle extrahiert wurde.

TSource ist ein Grundtyp, und die Quellsequenz ist leer.

Beispiele

Im folgenden Codebeispiel wird die Verwendung MaxBy mit einem benutzerdefinierten Comparer veranschaulicht, um die Groß-/Kleinschreibung bei der Überprüfung auf den Maximalwert zu ignorieren.

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

Hinweise

Wenn die Quellsequenz leer ist, sind je nach Quelltyp zwei mögliche Ergebnisse möglich. Wenn TSource es sich um einen Null-Typ handelt, gibt diese Methode zurück null. Wenn TSource es sich um eine nicht nullable Struktur handelt, z. B. einen Grundtyp, wird ein InvalidOperationException Fehler ausgelöst.

Wenn die Quellsequenz nur Werte enthält, die sind null, gibt diese Methode zurück null.

<format type="text/markdown">

Gilt für:

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

Quelle:
Max.cs
Quelle:
Max.cs
Quelle:
Max.cs
Quelle:
Max.cs
Quelle:
Max.cs

Gibt den Maximalwert in einer generischen Sequenz gemäß einer angegebenen Schlüsselmarkierfunktion zurück.

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

Typparameter

TSource

Der Typ der Elemente von source.

TKey

Der Schlüsseltyp, nach dem Elemente verglichen werden sollen.

Parameter

source
IEnumerable<TSource>

Eine Abfolge von Werten, um den Maximalwert zu bestimmen.

keySelector
Func<TSource,TKey>

Eine Funktion zum Extrahieren des Schlüssels für jedes Element.

Gibt zurück

TSource

Der Wert mit dem maximalen Schlüssel in der Sequenz.

Ausnahmen

source ist null.

Kein Schlüssel, der aus source der Implementierung oder IComparable<T>IComparable Schnittstelle extrahiert wurde.

TSource ist ein Grundtyp, und die Quellsequenz ist leer.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie MaxBy der Maximalwert in einer Auflistung basierend auf einer bestimmten Eigenschaft gefunden wird.

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

Hinweise

Wenn die Quellsequenz leer ist, sind je nach Quelltyp zwei mögliche Ergebnisse möglich. Wenn TSource es sich um einen Null-Typ handelt, gibt diese Methode zurück null. Wenn TSource es sich um eine nicht nullable Struktur handelt, z. B. einen Grundtyp, wird ein InvalidOperationException Fehler ausgelöst.

Wenn die Quellsequenz nur Werte enthält, die sind null, gibt diese Methode zurück null.

<format type="text/markdown">

Gilt für: