Enumerable.MaxBy Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
| Nome | Description |
|---|---|
| MaxBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
Retorna o valor máximo em uma sequência genérica de acordo com uma função de seletor de chave especificada e um comparador de chave. |
| MaxBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Retorna o valor máximo em uma sequência genérica de acordo com uma função de seletor de chave especificada. |
MaxBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)
- Origem:
- Max.cs
- Origem:
- Max.cs
- Origem:
- Max.cs
- Origem:
- Max.cs
- Origem:
- Max.cs
Retorna o valor máximo em uma sequência genérica de acordo com uma função de seletor de chave especificada e um comparador de chave.
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
Parâmetros de tipo
- TSource
O tipo dos elementos de source.
- TKey
O tipo de chave pelo qual comparar elementos.
Parâmetros
- source
- IEnumerable<TSource>
Uma sequência de valores da qual determinar o valor máximo.
- keySelector
- Func<TSource,TKey>
Uma função para extrair a chave para cada elemento.
- comparer
- IComparer<TKey>
As IComparer<T> teclas a serem comparadas.
Retornos
O valor com a chave máxima na sequência.
Exceções
source é null.
Nenhuma chave extraída implementa source a interface ou IComparable<T> implementaIComparable.
TSource é um tipo primitivo e a sequência de origem está vazia.
Exemplos
O exemplo de código a seguir demonstra como usar MaxBy com um comparador personalizado para ignorar a confidencialidade de maiúsculas e minúsculas ao verificar o valor máximo.
(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
*/
</Formato>
Comentários
Se a sequência de origem estiver vazia, dois resultados possíveis serão possíveis dependendo do tipo de origem. Se TSource for um tipo anulável, esse método retornará null. Se TSource for um struct não anulável, como um tipo primitivo, um InvalidOperationException será gerado.
Se a sequência de origem contiver apenas valores, nullesse método retornará null.
<format type="text/markdown">
Aplica-se a
MaxBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)
- Origem:
- Max.cs
- Origem:
- Max.cs
- Origem:
- Max.cs
- Origem:
- Max.cs
- Origem:
- Max.cs
Retorna o valor máximo em uma sequência genérica de acordo com uma função de seletor de chave especificada.
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
Parâmetros de tipo
- TSource
O tipo dos elementos de source.
- TKey
O tipo de chave pelo qual comparar elementos.
Parâmetros
- source
- IEnumerable<TSource>
Uma sequência de valores da qual determinar o valor máximo.
- keySelector
- Func<TSource,TKey>
Uma função para extrair a chave para cada elemento.
Retornos
O valor com a chave máxima na sequência.
Exceções
source é null.
Nenhuma chave extraída implementa source a interface ou IComparable<T> implementaIComparable.
TSource é um tipo primitivo e a sequência de origem está vazia.
Exemplos
O exemplo de código a seguir demonstra como usar MaxBy para localizar o valor máximo em uma coleção com base em uma propriedade específica.
(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
*/
</Formato>
Comentários
Se a sequência de origem estiver vazia, dois resultados possíveis serão possíveis dependendo do tipo de origem. Se TSource for um tipo anulável, esse método retornará null. Se TSource for um struct não anulável, como um tipo primitivo, um InvalidOperationException será gerado.
Se a sequência de origem contiver apenas valores, nullesse método retornará null.
<format type="text/markdown">