Enumerable.Max Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Devuelve el valor máximo en una secuencia de valores.
Sobrecargas
| Nombre | Description |
|---|---|
| Max(IEnumerable<Nullable<Single>>) |
Devuelve el valor máximo en una secuencia de valores que aceptan Single valores NULL. |
| Max(IEnumerable<Int32>) |
Devuelve el valor máximo en una secuencia de Int32 valores. |
| Max(IEnumerable<Nullable<Int64>>) |
Devuelve el valor máximo en una secuencia de valores que aceptan Int64 valores NULL. |
| Max(IEnumerable<Single>) |
Devuelve el valor máximo en una secuencia de Single valores. |
| Max(IEnumerable<Nullable<Int32>>) |
Devuelve el valor máximo en una secuencia de valores que aceptan Int32 valores NULL. |
| Max(IEnumerable<Decimal>) |
Devuelve el valor máximo en una secuencia de Decimal valores. |
| Max(IEnumerable<Nullable<Decimal>>) |
Devuelve el valor máximo en una secuencia de valores que aceptan Decimal valores NULL. |
| Max(IEnumerable<Int64>) |
Devuelve el valor máximo en una secuencia de Int64 valores. |
| Max(IEnumerable<Double>) |
Devuelve el valor máximo en una secuencia de Double valores. |
| Max(IEnumerable<Nullable<Double>>) |
Devuelve el valor máximo en una secuencia de valores que aceptan Double valores NULL. |
| Max<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) |
Invoca una función de transformación en cada elemento de una secuencia genérica y devuelve el valor resultante máximo. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo Single. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo que acepta valores NULL Single. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo que acepta valores NULL Int64. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo que acepta valores NULL Int32. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo que acepta valores NULL Double. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo Int64. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo Int32. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo Double. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo Decimal. |
| Max<TSource>(IEnumerable<TSource>) |
Devuelve el valor máximo de una secuencia genérica. |
| Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo que acepta valores NULL Decimal. |
Max(IEnumerable<Nullable<Single>>)
Devuelve el valor máximo en una secuencia de valores que aceptan Single valores NULL.
public:
[System::Runtime::CompilerServices::Extension]
static Nullable<float> Max(System::Collections::Generic::IEnumerable<Nullable<float>> ^ source);
public static float? Max(this System.Collections.Generic.IEnumerable<float?> source);
static member Max : seq<Nullable<single>> -> Nullable<single>
<Extension()>
Public Function Max (source As IEnumerable(Of Nullable(Of Single))) As Nullable(Of Single)
Parámetros
- source
- IEnumerable<Nullable<Single>>
Secuencia de valores que aceptan Single valores NULL para determinar el valor máximo de .
Devoluciones
Valor de tipo Nullable<Single> en C# o Nullable(Of Single) en Visual Basic que corresponde al valor máximo de la secuencia.
Excepciones
source es null.
Comentarios
El Max(IEnumerable<Nullable<Single>>) método usa la Single implementación de IComparable<T> para comparar valores.
Si la secuencia de origen está vacía o solo contiene valores que son null, esta función devuelve null.
En Visual Basic sintaxis de expresión de consulta, una cláusula Aggregate Into Max() se traduce en una invocación de Max.
Consulte también
- cláusula Aggregate (Visual Basic)
Se aplica a
Max(IEnumerable<Int32>)
Devuelve el valor máximo en una secuencia de Int32 valores.
public:
[System::Runtime::CompilerServices::Extension]
static int Max(System::Collections::Generic::IEnumerable<int> ^ source);
public static int Max(this System.Collections.Generic.IEnumerable<int> source);
static member Max : seq<int> -> int
<Extension()>
Public Function Max (source As IEnumerable(Of Integer)) As Integer
Parámetros
- source
- IEnumerable<Int32>
Secuencia de Int32 valores de para determinar el valor máximo de.
Devoluciones
Valor máximo de la secuencia.
Excepciones
source es null.
source no contiene elementos.
Comentarios
El Max(IEnumerable<Int32>) método usa la Int32 implementación de IComparable<T> para comparar valores.
En Visual Basic sintaxis de expresión de consulta, una cláusula Aggregate Into Max() se traduce en una invocación de Max.
Consulte también
- cláusula Aggregate (Visual Basic)
Se aplica a
Max(IEnumerable<Nullable<Int64>>)
Devuelve el valor máximo en una secuencia de valores que aceptan Int64 valores NULL.
public:
[System::Runtime::CompilerServices::Extension]
static Nullable<long> Max(System::Collections::Generic::IEnumerable<Nullable<long>> ^ source);
public static long? Max(this System.Collections.Generic.IEnumerable<long?> source);
static member Max : seq<Nullable<int64>> -> Nullable<int64>
<Extension()>
Public Function Max (source As IEnumerable(Of Nullable(Of Long))) As Nullable(Of Long)
Parámetros
- source
- IEnumerable<Nullable<Int64>>
Secuencia de valores que aceptan Int64 valores NULL para determinar el valor máximo de .
Devoluciones
Valor de tipo Nullable<Int64> en C# o Nullable(Of Int64) en Visual Basic que corresponde al valor máximo de la secuencia.
Excepciones
source es null.
Comentarios
El Max(IEnumerable<Nullable<Int64>>) método usa la Int64 implementación de IComparable<T> para comparar valores.
Si la secuencia de origen está vacía o solo contiene valores que son null, esta función devuelve null.
En Visual Basic sintaxis de expresión de consulta, una cláusula Aggregate Into Max() se traduce en una invocación de Max.
Consulte también
- cláusula Aggregate (Visual Basic)
Se aplica a
Max(IEnumerable<Single>)
Devuelve el valor máximo en una secuencia de Single valores.
public:
[System::Runtime::CompilerServices::Extension]
static float Max(System::Collections::Generic::IEnumerable<float> ^ source);
public static float Max(this System.Collections.Generic.IEnumerable<float> source);
static member Max : seq<single> -> single
<Extension()>
Public Function Max (source As IEnumerable(Of Single)) As Single
Parámetros
- source
- IEnumerable<Single>
Secuencia de Single valores de para determinar el valor máximo de.
Devoluciones
Valor máximo de la secuencia.
Excepciones
source es null.
source no contiene elementos.
Comentarios
El Max(IEnumerable<Single>) método usa la Single implementación de IComparable<T> para comparar valores.
En Visual Basic sintaxis de expresión de consulta, una cláusula Aggregate Into Max() se traduce en una invocación de Max.
Consulte también
- cláusula Aggregate (Visual Basic)
Se aplica a
Max(IEnumerable<Nullable<Int32>>)
Devuelve el valor máximo en una secuencia de valores que aceptan Int32 valores NULL.
public:
[System::Runtime::CompilerServices::Extension]
static Nullable<int> Max(System::Collections::Generic::IEnumerable<Nullable<int>> ^ source);
public static int? Max(this System.Collections.Generic.IEnumerable<int?> source);
static member Max : seq<Nullable<int>> -> Nullable<int>
<Extension()>
Public Function Max (source As IEnumerable(Of Nullable(Of Integer))) As Nullable(Of Integer)
Parámetros
- source
- IEnumerable<Nullable<Int32>>
Secuencia de valores que aceptan Int32 valores NULL para determinar el valor máximo de .
Devoluciones
Valor de tipo Nullable<Int32> en C# o Nullable(Of Int32) en Visual Basic que corresponde al valor máximo de la secuencia.
Excepciones
source es null.
Comentarios
El Max(IEnumerable<Nullable<Int32>>) método usa la Int32 implementación de IComparable<T> para comparar valores.
Si la secuencia de origen está vacía o solo contiene valores que son null, esta función devuelve null.
En Visual Basic sintaxis de expresión de consulta, una cláusula Aggregate Into Max() se traduce en una invocación de Max.
Consulte también
- cláusula Aggregate (Visual Basic)
Se aplica a
Max(IEnumerable<Decimal>)
Devuelve el valor máximo en una secuencia de Decimal valores.
public:
[System::Runtime::CompilerServices::Extension]
static System::Decimal Max(System::Collections::Generic::IEnumerable<System::Decimal> ^ source);
public static decimal Max(this System.Collections.Generic.IEnumerable<decimal> source);
static member Max : seq<decimal> -> decimal
<Extension()>
Public Function Max (source As IEnumerable(Of Decimal)) As Decimal
Parámetros
- source
- IEnumerable<Decimal>
Secuencia de Decimal valores de para determinar el valor máximo de.
Devoluciones
Valor máximo de la secuencia.
Excepciones
source es null.
source no contiene elementos.
Comentarios
El Max(IEnumerable<Decimal>) método usa la Decimal implementación de IComparable<T> para comparar valores.
En Visual Basic sintaxis de expresión de consulta, una cláusula Aggregate Into Max() se traduce en una invocación de Max.
Consulte también
- cláusula Aggregate (Visual Basic)
Se aplica a
Max(IEnumerable<Nullable<Decimal>>)
Devuelve el valor máximo en una secuencia de valores que aceptan Decimal valores NULL.
public:
[System::Runtime::CompilerServices::Extension]
static Nullable<System::Decimal> Max(System::Collections::Generic::IEnumerable<Nullable<System::Decimal>> ^ source);
public static decimal? Max(this System.Collections.Generic.IEnumerable<decimal?> source);
static member Max : seq<Nullable<decimal>> -> Nullable<decimal>
<Extension()>
Public Function Max (source As IEnumerable(Of Nullable(Of Decimal))) As Nullable(Of Decimal)
Parámetros
- source
- IEnumerable<Nullable<Decimal>>
Secuencia de valores que aceptan Decimal valores NULL para determinar el valor máximo de .
Devoluciones
Valor de tipo Nullable<Decimal> en C# o Nullable(Of Decimal) en Visual Basic que corresponde al valor máximo de la secuencia.
Excepciones
source es null.
Comentarios
El Max(IEnumerable<Nullable<Decimal>>) método usa la Decimal implementación de IComparable<T> para comparar valores.
Si la secuencia de origen está vacía o solo contiene valores que son null, esta función devuelve null.
En Visual Basic sintaxis de expresión de consulta, una cláusula Aggregate Into Max() se traduce en una invocación de Max.
Consulte también
- cláusula Aggregate (Visual Basic)
Se aplica a
Max(IEnumerable<Int64>)
Devuelve el valor máximo en una secuencia de Int64 valores.
public:
[System::Runtime::CompilerServices::Extension]
static long Max(System::Collections::Generic::IEnumerable<long> ^ source);
public static long Max(this System.Collections.Generic.IEnumerable<long> source);
static member Max : seq<int64> -> int64
<Extension()>
Public Function Max (source As IEnumerable(Of Long)) As Long
Parámetros
- source
- IEnumerable<Int64>
Secuencia de Int64 valores de para determinar el valor máximo de.
Devoluciones
Valor máximo de la secuencia.
Excepciones
source es null.
source no contiene elementos.
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar Max(IEnumerable<Int64>) para determinar el valor máximo en una secuencia.
List<long> longs = new List<long> { 4294967296L, 466855135L, 81125L };
long max = longs.Max();
Console.WriteLine("The largest number is {0}.", max);
/*
This code produces the following output:
The largest number is 4294967296.
*/
' Create a list of Long values.
Dim longs As New List(Of Long)(New Long() _
{4294967296L, 466855135L, 81125L})
' Get the maximum value in the list.
Dim max As Long = longs.Max()
' Display the result.
Console.WriteLine($"The largest number is {max}")
' This code produces the following output:
'
' The largest number is 4294967296
Comentarios
El Max(IEnumerable<Int64>) método usa la Int64 implementación de IComparable<T> para comparar valores.
En Visual Basic sintaxis de expresión de consulta, una cláusula Aggregate Into Max() se traduce en una invocación de Max.
Consulte también
- cláusula Aggregate (Visual Basic)
Se aplica a
Max(IEnumerable<Double>)
Devuelve el valor máximo en una secuencia de Double valores.
public:
[System::Runtime::CompilerServices::Extension]
static double Max(System::Collections::Generic::IEnumerable<double> ^ source);
public static double Max(this System.Collections.Generic.IEnumerable<double> source);
static member Max : seq<double> -> double
<Extension()>
Public Function Max (source As IEnumerable(Of Double)) As Double
Parámetros
- source
- IEnumerable<Double>
Secuencia de Double valores de para determinar el valor máximo de.
Devoluciones
Valor máximo de la secuencia.
Excepciones
source es null.
source no contiene elementos.
Comentarios
El Max(IEnumerable<Double>) método usa la Double implementación de IComparable<T> para comparar valores.
En Visual Basic sintaxis de expresión de consulta, una cláusula Aggregate Into Max() se traduce en una invocación de Max.
Consulte también
- cláusula Aggregate (Visual Basic)
Se aplica a
Max(IEnumerable<Nullable<Double>>)
Devuelve el valor máximo en una secuencia de valores que aceptan Double valores NULL.
public:
[System::Runtime::CompilerServices::Extension]
static Nullable<double> Max(System::Collections::Generic::IEnumerable<Nullable<double>> ^ source);
public static double? Max(this System.Collections.Generic.IEnumerable<double?> source);
static member Max : seq<Nullable<double>> -> Nullable<double>
<Extension()>
Public Function Max (source As IEnumerable(Of Nullable(Of Double))) As Nullable(Of Double)
Parámetros
- source
- IEnumerable<Nullable<Double>>
Secuencia de valores que aceptan Double valores NULL para determinar el valor máximo de .
Devoluciones
Valor de tipo Nullable<Double> en C# o Nullable(Of Double) en Visual Basic que corresponde al valor máximo de la secuencia.
Excepciones
source es null.
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar Max(IEnumerable<Nullable<Double>>) para determinar el valor máximo en una secuencia.
double?[] doubles = { null, 1.5E+104, 9E+103, -2E+103 };
double? max = doubles.Max();
Console.WriteLine("The largest number is {0}.", max);
/*
This code produces the following output:
The largest number is 1.5E+104.
*/
' Create an array of Nullable Double values.
Dim doubles() As Nullable(Of Double) =
{Nothing, 1.5E+104, 9.0E+103, -2.0E+103}
' Determine the maximum value in the array.
Dim max As Nullable(Of Double) = doubles.Max()
' Display the result.
Console.WriteLine($"The largest number is {max}")
' This code produces the following output:
'
' The largest number is 1.5E+104
Comentarios
El Max(IEnumerable<Nullable<Double>>) método usa la Double implementación de IComparable<T> para comparar valores.
Si la secuencia de origen está vacía o solo contiene valores que son null, esta función devuelve null.
En Visual Basic sintaxis de expresión de consulta, una cláusula Aggregate Into Max() se traduce en una invocación de Max.
Consulte también
- cláusula Aggregate (Visual Basic)
Se aplica a
Max<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>)
Invoca una función de transformación en cada elemento de una secuencia genérica y devuelve el valor resultante máximo.
public:
generic <typename TSource, typename TResult>
[System::Runtime::CompilerServices::Extension]
static TResult Max(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, TResult> ^ selector);
public static TResult Max<TSource,TResult>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TResult> selector);
static member Max : seq<'Source> * Func<'Source, 'Result> -> 'Result
<Extension()>
Public Function Max(Of TSource, TResult) (source As IEnumerable(Of TSource), selector As Func(Of TSource, TResult)) As TResult
Parámetros de tipo
- TSource
Tipo de los elementos de source.
- TResult
Tipo del valor devuelto por selector.
Parámetros
- source
- IEnumerable<TSource>
Secuencia de valores de para determinar el valor máximo de.
- selector
- Func<TSource,TResult>
Función de transformación que se va a aplicar a cada elemento.
Devoluciones
Valor máximo de la secuencia.
Excepciones
source o selector es null.
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) para determinar el valor máximo en una secuencia de valores proyectados.
Note
En este ejemplo de código se usa una sobrecarga del método diferente de la sobrecarga específica que se describe en este artículo. Para ampliar el ejemplo a la sobrecarga que describe este artículo, cambie el cuerpo de la selector función.
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void MaxEx4()
{
Pet[] pets = { new Pet { Name="Barley", Age=8 },
new Pet { Name="Boots", Age=4 },
new Pet { Name="Whiskers", Age=1 } };
int max = pets.Max(pet => pet.Age + pet.Name.Length);
Console.WriteLine(
"The maximum pet age plus name length is {0}.",
max);
}
/*
This code produces the following output:
The maximum pet age plus name length is 14.
*/
Structure Pet
Public Name As String
Public Age As Integer
End Structure
Sub MaxEx4()
' Create an array of Pet objects.
Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8},
New Pet With {.Name = "Boots", .Age = 4},
New Pet With {.Name = "Whiskers", .Age = 1}}
' Determine the "maximum" pet by passing a
' lambda expression to Max() that sums the pet's age
' and name length.
Dim max As Integer = pets.Max(Function(pet) _
pet.Age + pet.Name.Length)
' Display the result.
Console.WriteLine($"The maximum pet age plus name length is {max}")
End Sub
' This code produces the following output:
'
' The maximum pet age plus name length is 14
Comentarios
Si el tipo TResult implementa IComparable<T>, este método usa esa implementación para comparar valores. De lo contrario, si el tipo TResult implementa IComparable, esa implementación se usa para comparar valores.
En Visual Basic sintaxis de expresión de consulta, una cláusula Aggregate Into Max() se traduce en una invocación de Max.
Consulte también
- System.Linq.Enumerable.MaxBy
- cláusula Aggregate (Visual Basic)
Se aplica a
Max<TSource>(IEnumerable<TSource>, Func<TSource,Single>)
Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo Single.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static float Max(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, float> ^ selector);
public static float Max<TSource>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,float> selector);
static member Max : seq<'Source> * Func<'Source, single> -> single
<Extension()>
Public Function Max(Of TSource) (source As IEnumerable(Of TSource), selector As Func(Of TSource, Single)) As Single
Parámetros de tipo
- TSource
Tipo de los elementos de source.
Parámetros
- source
- IEnumerable<TSource>
Secuencia de valores de para determinar el valor máximo de.
Devoluciones
Valor máximo de la secuencia.
Excepciones
source o selector es null.
source no contiene elementos.
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) para determinar el valor máximo en una secuencia de valores proyectados.
Note
En este ejemplo de código se usa una sobrecarga del método diferente de la sobrecarga específica que se describe en este artículo. Para ampliar el ejemplo a la sobrecarga que describe este artículo, cambie el cuerpo de la selector función.
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void MaxEx4()
{
Pet[] pets = { new Pet { Name="Barley", Age=8 },
new Pet { Name="Boots", Age=4 },
new Pet { Name="Whiskers", Age=1 } };
int max = pets.Max(pet => pet.Age + pet.Name.Length);
Console.WriteLine(
"The maximum pet age plus name length is {0}.",
max);
}
/*
This code produces the following output:
The maximum pet age plus name length is 14.
*/
Structure Pet
Public Name As String
Public Age As Integer
End Structure
Sub MaxEx4()
' Create an array of Pet objects.
Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8},
New Pet With {.Name = "Boots", .Age = 4},
New Pet With {.Name = "Whiskers", .Age = 1}}
' Determine the "maximum" pet by passing a
' lambda expression to Max() that sums the pet's age
' and name length.
Dim max As Integer = pets.Max(Function(pet) _
pet.Age + pet.Name.Length)
' Display the result.
Console.WriteLine($"The maximum pet age plus name length is {max}")
End Sub
' This code produces the following output:
'
' The maximum pet age plus name length is 14
Comentarios
El Max<TSource>(IEnumerable<TSource>, Func<TSource,Single>) método usa la Single implementación de IComparable<T> para comparar valores.
Puede aplicar este método a una secuencia de valores arbitrarios si proporciona una función, selector, que proyecta los miembros de source en un tipo numérico, específicamente Single.
En Visual Basic sintaxis de expresión de consulta, una cláusula Aggregate Into Max() se traduce en una invocación de Max.
Consulte también
- cláusula Aggregate (Visual Basic)
Se aplica a
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>)
Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo que acepta valores NULL Single.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static Nullable<float> Max(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, Nullable<float>> ^ selector);
public static float? Max<TSource>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,float?> selector);
static member Max : seq<'Source> * Func<'Source, Nullable<single>> -> Nullable<single>
<Extension()>
Public Function Max(Of TSource) (source As IEnumerable(Of TSource), selector As Func(Of TSource, Nullable(Of Single))) As Nullable(Of Single)
Parámetros de tipo
- TSource
Tipo de los elementos de source.
Parámetros
- source
- IEnumerable<TSource>
Secuencia de valores de para determinar el valor máximo de.
Función de transformación que se va a aplicar a cada elemento.
Devoluciones
Valor que corresponde al valor máximo de la secuencia.
Excepciones
source o selector es null.
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) para determinar el valor máximo en una secuencia de valores proyectados.
Note
En este ejemplo de código se usa una sobrecarga del método diferente de la sobrecarga específica que se describe en este artículo. Para ampliar el ejemplo a la sobrecarga que describe este artículo, cambie el cuerpo de la selector función.
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void MaxEx4()
{
Pet[] pets = { new Pet { Name="Barley", Age=8 },
new Pet { Name="Boots", Age=4 },
new Pet { Name="Whiskers", Age=1 } };
int max = pets.Max(pet => pet.Age + pet.Name.Length);
Console.WriteLine(
"The maximum pet age plus name length is {0}.",
max);
}
/*
This code produces the following output:
The maximum pet age plus name length is 14.
*/
Structure Pet
Public Name As String
Public Age As Integer
End Structure
Sub MaxEx4()
' Create an array of Pet objects.
Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8},
New Pet With {.Name = "Boots", .Age = 4},
New Pet With {.Name = "Whiskers", .Age = 1}}
' Determine the "maximum" pet by passing a
' lambda expression to Max() that sums the pet's age
' and name length.
Dim max As Integer = pets.Max(Function(pet) _
pet.Age + pet.Name.Length)
' Display the result.
Console.WriteLine($"The maximum pet age plus name length is {max}")
End Sub
' This code produces the following output:
'
' The maximum pet age plus name length is 14
Comentarios
El Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) método usa la Single implementación de IComparable<T> para comparar valores.
Puede aplicar este método a una secuencia de valores arbitrarios si proporciona una función, selector, que proyecta los miembros de source en un tipo numérico, específicamente Nullable<Single> en C# o Nullable(Of Single) en Visual Basic.
En Visual Basic sintaxis de expresión de consulta, una cláusula Aggregate Into Max() se traduce en una invocación de Max.
Consulte también
- cláusula Aggregate (Visual Basic)
Se aplica a
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>)
Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo que acepta valores NULL Int64.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static Nullable<long> Max(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, Nullable<long>> ^ selector);
public static long? Max<TSource>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,long?> selector);
static member Max : seq<'Source> * Func<'Source, Nullable<int64>> -> Nullable<int64>
<Extension()>
Public Function Max(Of TSource) (source As IEnumerable(Of TSource), selector As Func(Of TSource, Nullable(Of Long))) As Nullable(Of Long)
Parámetros de tipo
- TSource
Tipo de los elementos de source.
Parámetros
- source
- IEnumerable<TSource>
Secuencia de valores de para determinar el valor máximo de.
Función de transformación que se va a aplicar a cada elemento.
Devoluciones
Valor que corresponde al valor máximo de la secuencia.
Excepciones
source o selector es null.
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) para determinar el valor máximo en una secuencia de valores proyectados.
Note
En este ejemplo de código se usa una sobrecarga del método diferente de la sobrecarga específica que se describe en este artículo. Para ampliar el ejemplo a la sobrecarga que describe este artículo, cambie el cuerpo de la selector función.
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void MaxEx4()
{
Pet[] pets = { new Pet { Name="Barley", Age=8 },
new Pet { Name="Boots", Age=4 },
new Pet { Name="Whiskers", Age=1 } };
int max = pets.Max(pet => pet.Age + pet.Name.Length);
Console.WriteLine(
"The maximum pet age plus name length is {0}.",
max);
}
/*
This code produces the following output:
The maximum pet age plus name length is 14.
*/
Structure Pet
Public Name As String
Public Age As Integer
End Structure
Sub MaxEx4()
' Create an array of Pet objects.
Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8},
New Pet With {.Name = "Boots", .Age = 4},
New Pet With {.Name = "Whiskers", .Age = 1}}
' Determine the "maximum" pet by passing a
' lambda expression to Max() that sums the pet's age
' and name length.
Dim max As Integer = pets.Max(Function(pet) _
pet.Age + pet.Name.Length)
' Display the result.
Console.WriteLine($"The maximum pet age plus name length is {max}")
End Sub
' This code produces the following output:
'
' The maximum pet age plus name length is 14
Comentarios
El Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) método usa la Int64 implementación de IComparable<T> para comparar valores.
Puede aplicar este método a una secuencia de valores arbitrarios si proporciona una función, selector, que proyecta los miembros de source en un tipo numérico, específicamente Nullable<Int64> en C# o Nullable(Of Int64) en Visual Basic.
En Visual Basic sintaxis de expresión de consulta, una cláusula Aggregate Into Max() se traduce en una invocación de Max.
Consulte también
- cláusula Aggregate (Visual Basic)
Se aplica a
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>)
Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo que acepta valores NULL Int32.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static Nullable<int> Max(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, Nullable<int>> ^ selector);
public static int? Max<TSource>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,int?> selector);
static member Max : seq<'Source> * Func<'Source, Nullable<int>> -> Nullable<int>
<Extension()>
Public Function Max(Of TSource) (source As IEnumerable(Of TSource), selector As Func(Of TSource, Nullable(Of Integer))) As Nullable(Of Integer)
Parámetros de tipo
- TSource
Tipo de los elementos de source.
Parámetros
- source
- IEnumerable<TSource>
Secuencia de valores de para determinar el valor máximo de.
Función de transformación que se va a aplicar a cada elemento.
Devoluciones
Valor de tipo Nullable<Int32> en C# o Nullable(Of Int32) en Visual Basic que corresponde al valor máximo de la secuencia.
Excepciones
source o selector es null.
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) para determinar el valor máximo en una secuencia de valores proyectados.
Note
En este ejemplo de código se usa una sobrecarga del método diferente de la sobrecarga específica que se describe en este artículo. Para ampliar el ejemplo a la sobrecarga que describe este artículo, cambie el cuerpo de la selector función.
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void MaxEx4()
{
Pet[] pets = { new Pet { Name="Barley", Age=8 },
new Pet { Name="Boots", Age=4 },
new Pet { Name="Whiskers", Age=1 } };
int max = pets.Max(pet => pet.Age + pet.Name.Length);
Console.WriteLine(
"The maximum pet age plus name length is {0}.",
max);
}
/*
This code produces the following output:
The maximum pet age plus name length is 14.
*/
Structure Pet
Public Name As String
Public Age As Integer
End Structure
Sub MaxEx4()
' Create an array of Pet objects.
Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8},
New Pet With {.Name = "Boots", .Age = 4},
New Pet With {.Name = "Whiskers", .Age = 1}}
' Determine the "maximum" pet by passing a
' lambda expression to Max() that sums the pet's age
' and name length.
Dim max As Integer = pets.Max(Function(pet) _
pet.Age + pet.Name.Length)
' Display the result.
Console.WriteLine($"The maximum pet age plus name length is {max}")
End Sub
' This code produces the following output:
'
' The maximum pet age plus name length is 14
Comentarios
El Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) método usa la Int32 implementación de IComparable<T> para comparar valores.
Puede aplicar este método a una secuencia de valores arbitrarios si proporciona una función, selector, que proyecta los miembros de source en un tipo numérico, específicamente Nullable<Int32> en C# o Nullable(Of Int32) en Visual Basic.
En Visual Basic sintaxis de expresión de consulta, una cláusula Aggregate Into Max() se traduce en una invocación de Max.
Consulte también
- cláusula Aggregate (Visual Basic)
Se aplica a
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>)
Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo que acepta valores NULL Double.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static Nullable<double> Max(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, Nullable<double>> ^ selector);
public static double? Max<TSource>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,double?> selector);
static member Max : seq<'Source> * Func<'Source, Nullable<double>> -> Nullable<double>
<Extension()>
Public Function Max(Of TSource) (source As IEnumerable(Of TSource), selector As Func(Of TSource, Nullable(Of Double))) As Nullable(Of Double)
Parámetros de tipo
- TSource
Tipo de los elementos de source.
Parámetros
- source
- IEnumerable<TSource>
Secuencia de valores de para determinar el valor máximo de.
Función de transformación que se va a aplicar a cada elemento.
Devoluciones
Valor de tipo Nullable<Double> en C# o Nullable(Of Double) en Visual Basic que corresponde al valor máximo de la secuencia.
Excepciones
source o selector es null.
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) para determinar el valor máximo en una secuencia de valores proyectados.
Note
En este ejemplo de código se usa una sobrecarga del método diferente de la sobrecarga específica que se describe en este artículo. Para ampliar el ejemplo a la sobrecarga que describe este artículo, cambie el cuerpo de la selector función.
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void MaxEx4()
{
Pet[] pets = { new Pet { Name="Barley", Age=8 },
new Pet { Name="Boots", Age=4 },
new Pet { Name="Whiskers", Age=1 } };
int max = pets.Max(pet => pet.Age + pet.Name.Length);
Console.WriteLine(
"The maximum pet age plus name length is {0}.",
max);
}
/*
This code produces the following output:
The maximum pet age plus name length is 14.
*/
Structure Pet
Public Name As String
Public Age As Integer
End Structure
Sub MaxEx4()
' Create an array of Pet objects.
Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8},
New Pet With {.Name = "Boots", .Age = 4},
New Pet With {.Name = "Whiskers", .Age = 1}}
' Determine the "maximum" pet by passing a
' lambda expression to Max() that sums the pet's age
' and name length.
Dim max As Integer = pets.Max(Function(pet) _
pet.Age + pet.Name.Length)
' Display the result.
Console.WriteLine($"The maximum pet age plus name length is {max}")
End Sub
' This code produces the following output:
'
' The maximum pet age plus name length is 14
Comentarios
El Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) método usa la Double implementación de IComparable<T> para comparar valores.
Puede aplicar este método a una secuencia de valores arbitrarios si proporciona una función, selector, que proyecta los miembros de source en un tipo numérico, específicamente Nullable<Double> en C# o Nullable(Of Double) en Visual Basic.
En Visual Basic sintaxis de expresión de consulta, una cláusula Aggregate Into Max() se traduce en una invocación de Max.
Consulte también
- cláusula Aggregate (Visual Basic)
Se aplica a
Max<TSource>(IEnumerable<TSource>, Func<TSource,Int64>)
Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo Int64.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static long Max(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, long> ^ selector);
public static long Max<TSource>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,long> selector);
static member Max : seq<'Source> * Func<'Source, int64> -> int64
<Extension()>
Public Function Max(Of TSource) (source As IEnumerable(Of TSource), selector As Func(Of TSource, Long)) As Long
Parámetros de tipo
- TSource
Tipo de los elementos de source.
Parámetros
- source
- IEnumerable<TSource>
Secuencia de valores de para determinar el valor máximo de.
Devoluciones
Valor máximo de la secuencia.
Excepciones
source o selector es null.
source no contiene elementos.
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) para determinar el valor máximo en una secuencia de valores proyectados.
Note
En este ejemplo de código se usa una sobrecarga del método diferente de la sobrecarga específica que se describe en este artículo. Para ampliar el ejemplo a la sobrecarga que describe este artículo, cambie el cuerpo de la selector función.
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void MaxEx4()
{
Pet[] pets = { new Pet { Name="Barley", Age=8 },
new Pet { Name="Boots", Age=4 },
new Pet { Name="Whiskers", Age=1 } };
int max = pets.Max(pet => pet.Age + pet.Name.Length);
Console.WriteLine(
"The maximum pet age plus name length is {0}.",
max);
}
/*
This code produces the following output:
The maximum pet age plus name length is 14.
*/
Structure Pet
Public Name As String
Public Age As Integer
End Structure
Sub MaxEx4()
' Create an array of Pet objects.
Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8},
New Pet With {.Name = "Boots", .Age = 4},
New Pet With {.Name = "Whiskers", .Age = 1}}
' Determine the "maximum" pet by passing a
' lambda expression to Max() that sums the pet's age
' and name length.
Dim max As Integer = pets.Max(Function(pet) _
pet.Age + pet.Name.Length)
' Display the result.
Console.WriteLine($"The maximum pet age plus name length is {max}")
End Sub
' This code produces the following output:
'
' The maximum pet age plus name length is 14
Comentarios
El Max<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) método usa la Int64 implementación de IComparable<T> para comparar valores.
Puede aplicar este método a una secuencia de valores arbitrarios si proporciona una función, selector, que proyecta los miembros de source en un tipo numérico, específicamente Int64.
En Visual Basic sintaxis de expresión de consulta, una cláusula Aggregate Into Max() se traduce en una invocación de Max.
Consulte también
- cláusula Aggregate (Visual Basic)
Se aplica a
Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>)
Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo Int32.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static int Max(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, int> ^ selector);
public static int Max<TSource>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,int> selector);
static member Max : seq<'Source> * Func<'Source, int> -> int
<Extension()>
Public Function Max(Of TSource) (source As IEnumerable(Of TSource), selector As Func(Of TSource, Integer)) As Integer
Parámetros de tipo
- TSource
Tipo de los elementos de source.
Parámetros
- source
- IEnumerable<TSource>
Secuencia de valores de para determinar el valor máximo de.
Devoluciones
Valor máximo de la secuencia.
Excepciones
source o selector es null.
source no contiene elementos.
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) para determinar el valor máximo en una secuencia de valores proyectados.
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void MaxEx4()
{
Pet[] pets = { new Pet { Name="Barley", Age=8 },
new Pet { Name="Boots", Age=4 },
new Pet { Name="Whiskers", Age=1 } };
int max = pets.Max(pet => pet.Age + pet.Name.Length);
Console.WriteLine(
"The maximum pet age plus name length is {0}.",
max);
}
/*
This code produces the following output:
The maximum pet age plus name length is 14.
*/
Structure Pet
Public Name As String
Public Age As Integer
End Structure
Sub MaxEx4()
' Create an array of Pet objects.
Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8},
New Pet With {.Name = "Boots", .Age = 4},
New Pet With {.Name = "Whiskers", .Age = 1}}
' Determine the "maximum" pet by passing a
' lambda expression to Max() that sums the pet's age
' and name length.
Dim max As Integer = pets.Max(Function(pet) _
pet.Age + pet.Name.Length)
' Display the result.
Console.WriteLine($"The maximum pet age plus name length is {max}")
End Sub
' This code produces the following output:
'
' The maximum pet age plus name length is 14
Comentarios
El Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) método usa la Int32 implementación de IComparable<T> para comparar valores.
Puede aplicar este método a una secuencia de valores arbitrarios si proporciona una función, selector, que proyecta los miembros de source en un tipo numérico, específicamente Int32.
En Visual Basic sintaxis de expresión de consulta, una cláusula Aggregate Into Max() se traduce en una invocación de Max.
Consulte también
- cláusula Aggregate (Visual Basic)
Se aplica a
Max<TSource>(IEnumerable<TSource>, Func<TSource,Double>)
Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo Double.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static double Max(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, double> ^ selector);
public static double Max<TSource>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,double> selector);
static member Max : seq<'Source> * Func<'Source, double> -> double
<Extension()>
Public Function Max(Of TSource) (source As IEnumerable(Of TSource), selector As Func(Of TSource, Double)) As Double
Parámetros de tipo
- TSource
Tipo de los elementos de source.
Parámetros
- source
- IEnumerable<TSource>
Secuencia de valores de para determinar el valor máximo de.
Devoluciones
Valor máximo de la secuencia.
Excepciones
source o selector es null.
source no contiene elementos.
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) para determinar el valor máximo en una secuencia de valores proyectados.
Note
En este ejemplo de código se usa una sobrecarga del método diferente de la sobrecarga específica que se describe en este artículo. Para ampliar el ejemplo a la sobrecarga que describe este artículo, cambie el cuerpo de la selector función.
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void MaxEx4()
{
Pet[] pets = { new Pet { Name="Barley", Age=8 },
new Pet { Name="Boots", Age=4 },
new Pet { Name="Whiskers", Age=1 } };
int max = pets.Max(pet => pet.Age + pet.Name.Length);
Console.WriteLine(
"The maximum pet age plus name length is {0}.",
max);
}
/*
This code produces the following output:
The maximum pet age plus name length is 14.
*/
Structure Pet
Public Name As String
Public Age As Integer
End Structure
Sub MaxEx4()
' Create an array of Pet objects.
Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8},
New Pet With {.Name = "Boots", .Age = 4},
New Pet With {.Name = "Whiskers", .Age = 1}}
' Determine the "maximum" pet by passing a
' lambda expression to Max() that sums the pet's age
' and name length.
Dim max As Integer = pets.Max(Function(pet) _
pet.Age + pet.Name.Length)
' Display the result.
Console.WriteLine($"The maximum pet age plus name length is {max}")
End Sub
' This code produces the following output:
'
' The maximum pet age plus name length is 14
Comentarios
El Max<TSource>(IEnumerable<TSource>, Func<TSource,Double>) método usa la Double implementación de IComparable<T> para comparar valores.
Puede aplicar este método a una secuencia de valores arbitrarios si proporciona una función, selector, que proyecta los miembros de source en un tipo numérico, específicamente Double.
En Visual Basic sintaxis de expresión de consulta, una cláusula Aggregate Into Max() se traduce en una invocación de Max.
Consulte también
- cláusula Aggregate (Visual Basic)
Se aplica a
Max<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>)
Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo Decimal.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static System::Decimal Max(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, System::Decimal> ^ selector);
public static decimal Max<TSource>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,decimal> selector);
static member Max : seq<'Source> * Func<'Source, decimal> -> decimal
<Extension()>
Public Function Max(Of TSource) (source As IEnumerable(Of TSource), selector As Func(Of TSource, Decimal)) As Decimal
Parámetros de tipo
- TSource
Tipo de los elementos de source.
Parámetros
- source
- IEnumerable<TSource>
Secuencia de valores de para determinar el valor máximo de.
Devoluciones
Valor máximo de la secuencia.
Excepciones
source o selector es null.
source no contiene elementos.
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) para determinar el valor máximo en una secuencia de valores proyectados.
Note
En este ejemplo de código se usa una sobrecarga del método diferente de la sobrecarga específica que se describe en este artículo. Para ampliar el ejemplo a la sobrecarga que describe este artículo, cambie el cuerpo de la selector función.
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void MaxEx4()
{
Pet[] pets = { new Pet { Name="Barley", Age=8 },
new Pet { Name="Boots", Age=4 },
new Pet { Name="Whiskers", Age=1 } };
int max = pets.Max(pet => pet.Age + pet.Name.Length);
Console.WriteLine(
"The maximum pet age plus name length is {0}.",
max);
}
/*
This code produces the following output:
The maximum pet age plus name length is 14.
*/
Structure Pet
Public Name As String
Public Age As Integer
End Structure
Sub MaxEx4()
' Create an array of Pet objects.
Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8},
New Pet With {.Name = "Boots", .Age = 4},
New Pet With {.Name = "Whiskers", .Age = 1}}
' Determine the "maximum" pet by passing a
' lambda expression to Max() that sums the pet's age
' and name length.
Dim max As Integer = pets.Max(Function(pet) _
pet.Age + pet.Name.Length)
' Display the result.
Console.WriteLine($"The maximum pet age plus name length is {max}")
End Sub
' This code produces the following output:
'
' The maximum pet age plus name length is 14
Comentarios
El Max<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) método usa la Decimal implementación de IComparable<T> para comparar valores.
Puede aplicar este método a una secuencia de valores arbitrarios si proporciona una función, selector, que proyecta los miembros de source en un tipo numérico, específicamente Decimal.
En Visual Basic sintaxis de expresión de consulta, una cláusula Aggregate Into Max() se traduce en una invocación de Max.
Consulte también
- cláusula Aggregate (Visual Basic)
Se aplica a
Max<TSource>(IEnumerable<TSource>)
Devuelve el valor máximo de una secuencia genérica.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static TSource Max(System::Collections::Generic::IEnumerable<TSource> ^ source);
public static TSource Max<TSource>(this System.Collections.Generic.IEnumerable<TSource> source);
static member Max : seq<'Source> -> 'Source
<Extension()>
Public Function Max(Of TSource) (source As IEnumerable(Of TSource)) As TSource
Parámetros de tipo
- TSource
Tipo de los elementos de source.
Parámetros
- source
- IEnumerable<TSource>
Secuencia de valores de para determinar el valor máximo de.
Devoluciones
Valor máximo de la secuencia.
Excepciones
source es null.
Ningún objeto de source implementa la IComparable interfaz o IComparable<T> .
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar Max<TSource>(IEnumerable<TSource>) para determinar el valor máximo en una secuencia de IComparable<T> objetos.
/// <summary>
/// This class implements IComparable to be able to
/// compare one Pet to another Pet.
/// </summary>
class Pet : IComparable<Pet>
{
public string Name { get; set; }
public int Age { get; set; }
/// <summary>
/// Compares this Pet to another Pet by
/// summing each Pet's age and name length.
/// </summary>
/// <param name="other">The Pet to compare this Pet to.</param>
/// <returns>-1 if this Pet is 'less' than the other Pet,
/// 0 if they are equal,
/// or 1 if this Pet is 'greater' than the other Pet.</returns>
int IComparable<Pet>.CompareTo(Pet other)
{
int sumOther = other.Age + other.Name.Length;
int sumThis = this.Age + this.Name.Length;
if (sumOther > sumThis)
return -1;
else if (sumOther == sumThis)
return 0;
else
return 1;
}
}
public static void MaxEx3()
{
Pet[] pets = { new Pet { Name="Barley", Age=8 },
new Pet { Name="Boots", Age=4 },
new Pet { Name="Whiskers", Age=1 } };
Pet max = pets.Max();
Console.WriteLine(
"The 'maximum' animal is {0}.",
max.Name);
}
/*
This code produces the following output:
The 'maximum' animal is Barley.
*/
' This class implements IComparable
' and has a custom 'CompareTo' implementation.
Class Pet
Implements IComparable(Of Pet)
Public Name As String
Public Age As Integer
''' <summary>
''' Compares Pet objects by the sum of their age and name length.
''' </summary>
''' <param name="other">The Pet to compare this Pet to.</param>
''' <returns>-1 if this Pet's sum is 'less' than the other Pet,
''' 0 if they are equal,
''' or 1 if this Pet's sum is 'greater' than the other Pet.</returns>
Function CompareTo(ByVal other As Pet) As Integer _
Implements IComparable(Of Pet).CompareTo
If (other.Age + other.Name.Length > Me.Age + Me.Name.Length) Then
Return -1
ElseIf (other.Age + other.Name.Length = Me.Age + Me.Name.Length) Then
Return 0
Else
Return 1
End If
End Function
End Class
Sub MaxEx3()
' Create an array of Pet objects.
Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8},
New Pet With {.Name = "Boots", .Age = 4},
New Pet With {.Name = "Whiskers", .Age = 1}}
' Find the "maximum" pet according to the
' custom CompareTo() implementation.
Dim max As Pet = pets.Max()
' Display the result.
Console.WriteLine($"The 'maximum' animal is {max.Name}")
End Sub
' This code produces the following output:
'
' The 'maximum' animal is Barley
Comentarios
Si el tipo TSource implementa IComparable<T>, el Max<TSource>(IEnumerable<TSource>) método usa esa implementación para comparar valores. De lo contrario, si el tipo TSource implementa IComparable, esa implementación se usa para comparar valores.
Si TSource es un tipo de referencia y la secuencia de origen está vacía o contiene solo valores que son null, este método devuelve null.
En Visual Basic sintaxis de expresión de consulta, una cláusula Aggregate Into Max() se traduce en una invocación de Max.
Consulte también
- cláusula Aggregate (Visual Basic)
Se aplica a
Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>)
Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo que acepta valores NULL Decimal.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static Nullable<System::Decimal> Max(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, Nullable<System::Decimal>> ^ selector);
public static decimal? Max<TSource>(this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,decimal?> selector);
static member Max : seq<'Source> * Func<'Source, Nullable<decimal>> -> Nullable<decimal>
<Extension()>
Public Function Max(Of TSource) (source As IEnumerable(Of TSource), selector As Func(Of TSource, Nullable(Of Decimal))) As Nullable(Of Decimal)
Parámetros de tipo
- TSource
Tipo de los elementos de source.
Parámetros
- source
- IEnumerable<TSource>
Secuencia de valores de para determinar el valor máximo de.
Función de transformación que se va a aplicar a cada elemento.
Devoluciones
Valor de tipo Nullable<Decimal> en C# o Nullable(Of Decimal) en Visual Basic que corresponde al valor máximo de la secuencia.
Excepciones
source o selector es null.
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) para determinar el valor máximo en una secuencia de valores proyectados.
Note
En este ejemplo de código se usa una sobrecarga del método diferente de la sobrecarga específica que se describe en este artículo. Para ampliar el ejemplo a la sobrecarga que describe este artículo, cambie el cuerpo de la selector función.
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void MaxEx4()
{
Pet[] pets = { new Pet { Name="Barley", Age=8 },
new Pet { Name="Boots", Age=4 },
new Pet { Name="Whiskers", Age=1 } };
int max = pets.Max(pet => pet.Age + pet.Name.Length);
Console.WriteLine(
"The maximum pet age plus name length is {0}.",
max);
}
/*
This code produces the following output:
The maximum pet age plus name length is 14.
*/
Structure Pet
Public Name As String
Public Age As Integer
End Structure
Sub MaxEx4()
' Create an array of Pet objects.
Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8},
New Pet With {.Name = "Boots", .Age = 4},
New Pet With {.Name = "Whiskers", .Age = 1}}
' Determine the "maximum" pet by passing a
' lambda expression to Max() that sums the pet's age
' and name length.
Dim max As Integer = pets.Max(Function(pet) _
pet.Age + pet.Name.Length)
' Display the result.
Console.WriteLine($"The maximum pet age plus name length is {max}")
End Sub
' This code produces the following output:
'
' The maximum pet age plus name length is 14
Comentarios
El Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) método usa la Decimal implementación de IComparable<T> para comparar valores.
Puede aplicar este método a una secuencia de valores arbitrarios si proporciona una función, selector, que proyecta los miembros de source en un tipo numérico, específicamente Nullable<Decimal> en C# o Nullable(Of Decimal) en Visual Basic.
En Visual Basic sintaxis de expresión de consulta, una cláusula Aggregate Into Max() se traduce en una invocación de Max.
Consulte también
- cláusula Aggregate (Visual Basic)