Enumerable.Max Método

Definición

Devuelve el valor máximo de una secuencia de valores.

Sobrecargas

Max(IEnumerable<Single>)

Devuelve el valor máximo de una secuencia de valores Single.

Max(IEnumerable<Nullable<Single>>)

Devuelve el valor máximo de una secuencia de valores Single que aceptan valores NULL.

Max(IEnumerable<Nullable<Int32>>)

Devuelve el valor máximo de una secuencia de valores Int32 que aceptan valores NULL.

Max(IEnumerable<Nullable<Int64>>)

Devuelve el valor máximo de una secuencia de valores Int64 que aceptan valores NULL.

Max(IEnumerable<Nullable<Double>>)

Devuelve el valor máximo de una secuencia de valores Double que aceptan valores NULL.

Max(IEnumerable<Double>)

Devuelve el valor máximo de una secuencia de valores Double.

Max(IEnumerable<Int64>)

Devuelve el valor máximo de una secuencia de valores Int64.

Max(IEnumerable<Int32>)

Devuelve el valor máximo de una secuencia de valores Int32.

Max(IEnumerable<Decimal>)

Devuelve el valor máximo de una secuencia de valores Decimal.

Max(IEnumerable<Nullable<Decimal>>)

Devuelve el valor máximo de una secuencia de valores Decimal que aceptan 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 máximo resultante.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Single>)

Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor Single máximo.

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 Single máximo que acepta valores NULL.

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 Int64 máximo que acepta valores NULL.

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 Int32 máximo que acepta valores NULL.

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 Double máximo que acepta valores NULL.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Int64>)

Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor Int64 máximo.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>)

Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor Int32 máximo.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Double>)

Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor Double máximo.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>)

Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor Decimal máximo.

Max<TSource>(IEnumerable<TSource>, IComparer<TSource>)

Devuelve el valor máximo de una secuencia genérica.

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 Decimal máximo que acepta valores NULL.

Max(IEnumerable<Single>)

Devuelve el valor máximo de una secuencia de valores Single.

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 valores Single cuyo valor máximo se va a determinar.

Devoluciones

Single

El valor máximo de la secuencia.

Excepciones

source es null.

source no contiene ningún elemento.

Comentarios

El Max(IEnumerable<Single>) método usa la Single implementación de IComparable<T> para comparar valores.

En la sintaxis de la expresión de consulta de Visual Basic, una Aggregate Into Max() cláusula se traduce en una invocación de Max.

Consulte también

Se aplica a

Max(IEnumerable<Nullable<Single>>)

Devuelve el valor máximo de una secuencia de valores Single que aceptan 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 Single que aceptan valores NULL cuyo valor máximo se va a determinar.

Devoluciones

Nullable<Single>

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 la sintaxis de la expresión de consulta de Visual Basic, una Aggregate Into Max() cláusula se traduce en una invocación de Max.

Consulte también

Se aplica a

Max(IEnumerable<Nullable<Int32>>)

Devuelve el valor máximo de una secuencia de valores Int32 que aceptan 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 Int32 que aceptan valores NULL cuyo valor máximo se va a determinar.

Devoluciones

Nullable<Int32>

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 la sintaxis de la expresión de consulta de Visual Basic, una Aggregate Into Max() cláusula se traduce en una invocación de Max.

Consulte también

Se aplica a

Max(IEnumerable<Nullable<Int64>>)

Devuelve el valor máximo de una secuencia de valores Int64 que aceptan 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 Int64 que aceptan valores NULL cuyo valor máximo se va a determinar.

Devoluciones

Nullable<Int64>

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 la sintaxis de la expresión de consulta de Visual Basic, una Aggregate Into Max() cláusula se traduce en una invocación de Max.

Consulte también

Se aplica a

Max(IEnumerable<Nullable<Double>>)

Devuelve el valor máximo de una secuencia de valores Double que aceptan 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 Double que aceptan valores NULL cuyo valor máximo se va a determinar.

Devoluciones

Nullable<Double>

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 la sintaxis de la expresión de consulta de Visual Basic, una Aggregate Into Max() cláusula se traduce en una invocación de Max.

Consulte también

Se aplica a

Max(IEnumerable<Double>)

Devuelve el valor máximo de una secuencia de valores Double.

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 valores Double cuyo valor máximo se va a determinar.

Devoluciones

Double

El valor máximo de la secuencia.

Excepciones

source es null.

source no contiene ningún elemento.

Comentarios

El Max(IEnumerable<Double>) método usa la Double implementación de IComparable<T> para comparar valores.

En la sintaxis de la expresión de consulta de Visual Basic, una Aggregate Into Max() cláusula se traduce en una invocación de Max.

Consulte también

Se aplica a

Max(IEnumerable<Int64>)

Devuelve el valor máximo de una secuencia de valores Int64.

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 valores Int64 cuyo valor máximo se va a determinar.

Devoluciones

Int64

El valor máximo de la secuencia.

Excepciones

source es null.

source no contiene ningún elemento.

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 la sintaxis de la expresión de consulta de Visual Basic, una Aggregate Into Max() cláusula se traduce en una invocación de Max.

Consulte también

Se aplica a

Max(IEnumerable<Int32>)

Devuelve el valor máximo de una secuencia de valores Int32.

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 valores Int32 cuyo valor máximo se va a determinar.

Devoluciones

Int32

El valor máximo de la secuencia.

Excepciones

source es null.

source no contiene ningún elemento.

Comentarios

El Max(IEnumerable<Int32>) método usa la Int32 implementación de IComparable<T> para comparar valores.

En la sintaxis de la expresión de consulta de Visual Basic, una Aggregate Into Max() cláusula se traduce en una invocación de Max.

Consulte también

Se aplica a

Max(IEnumerable<Decimal>)

Devuelve el valor máximo de una secuencia de valores Decimal.

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 valores Decimal cuyo valor máximo se va a determinar.

Devoluciones

Decimal

El valor máximo de la secuencia.

Excepciones

source es null.

source no contiene ningún elemento.

Comentarios

El Max(IEnumerable<Decimal>) método usa la Decimal implementación de IComparable<T> para comparar valores.

En la sintaxis de la expresión de consulta de Visual Basic, una Aggregate Into Max() cláusula se traduce en una invocación de Max.

Consulte también

Se aplica a

Max(IEnumerable<Nullable<Decimal>>)

Devuelve el valor máximo de una secuencia de valores Decimal que aceptan 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 Decimal que aceptan valores NULL cuyo valor máximo se va a determinar.

Devoluciones

Nullable<Decimal>

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 la sintaxis de la expresión de consulta de Visual Basic, una Aggregate Into Max() cláusula se traduce en una invocación de Max.

Consulte también

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 máximo resultante.

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);
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 de valor devuelto por selector.

Parámetros

source
IEnumerable<TSource>

Secuencia de valores cuyo valor máximo se va a determinar.

selector
Func<TSource,TResult>

Función de transformación que se va a aplicar a cada elemento.

Devoluciones

TResult

El 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.

Nota

En este ejemplo de código se usa una sobrecarga del método que es 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 type 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 la sintaxis de la expresión de consulta de Visual Basic, una Aggregate Into Max() cláusula se traduce en una invocación de Max.

Consulte también

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 Single máximo.

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 cuyo valor máximo se va a determinar.

selector
Func<TSource,Single>

Función de transformación que se va a aplicar a cada elemento.

Devoluciones

Single

El valor máximo de la secuencia.

Excepciones

source o selector es null.

source no contiene ningún elemento.

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.

Nota

En este ejemplo de código se usa una sobrecarga del método que es 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 la sintaxis de la expresión de consulta de Visual Basic, una Aggregate Into Max() cláusula se traduce en una invocación de Max.

Consulte también

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 Single máximo que acepta valores NULL.

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 cuyo valor máximo se va a determinar.

selector
Func<TSource,Nullable<Single>>

Función de transformación que se va a aplicar a cada elemento.

Devoluciones

Nullable<Single>

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

Nota

En este ejemplo de código se usa una sobrecarga del método que es 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 la sintaxis de la expresión de consulta de Visual Basic, una Aggregate Into Max() cláusula se traduce en una invocación de Max.

Consulte también

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 Int64 máximo que acepta valores NULL.

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 cuyo valor máximo se va a determinar.

selector
Func<TSource,Nullable<Int64>>

Función de transformación que se va a aplicar a cada elemento.

Devoluciones

Nullable<Int64>

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

Nota

En este ejemplo de código se usa una sobrecarga del método que es 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 la sintaxis de la expresión de consulta de Visual Basic, una Aggregate Into Max() cláusula se traduce en una invocación de Max.

Consulte también

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 Int32 máximo que acepta valores NULL.

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 cuyo valor máximo se va a determinar.

selector
Func<TSource,Nullable<Int32>>

Función de transformación que se va a aplicar a cada elemento.

Devoluciones

Nullable<Int32>

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.

Nota

En este ejemplo de código se usa una sobrecarga del método que es 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 la sintaxis de la expresión de consulta de Visual Basic, una Aggregate Into Max() cláusula se traduce en una invocación de Max.

Consulte también

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 Double máximo que acepta valores NULL.

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 cuyo valor máximo se va a determinar.

selector
Func<TSource,Nullable<Double>>

Función de transformación que se va a aplicar a cada elemento.

Devoluciones

Nullable<Double>

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.

Nota

En este ejemplo de código se usa una sobrecarga del método que es 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 la sintaxis de la expresión de consulta de Visual Basic, una Aggregate Into Max() cláusula se traduce en una invocación de Max.

Consulte también

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 Int64 máximo.

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 cuyo valor máximo se va a determinar.

selector
Func<TSource,Int64>

Función de transformación que se va a aplicar a cada elemento.

Devoluciones

Int64

El valor máximo de la secuencia.

Excepciones

source o selector es null.

source no contiene ningún elemento.

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.

Nota

En este ejemplo de código se usa una sobrecarga del método que es 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 la sintaxis de la expresión de consulta de Visual Basic, una Aggregate Into Max() cláusula se traduce en una invocación de Max.

Consulte también

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 Int32 máximo.

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 cuyo valor máximo se va a determinar.

selector
Func<TSource,Int32>

Función de transformación que se va a aplicar a cada elemento.

Devoluciones

Int32

El valor máximo de la secuencia.

Excepciones

source o selector es null.

source no contiene ningún elemento.

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 la sintaxis de la expresión de consulta de Visual Basic, una Aggregate Into Max() cláusula se traduce en una invocación de Max.

Consulte también

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 Double máximo.

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 cuyo valor máximo se va a determinar.

selector
Func<TSource,Double>

Función de transformación que se va a aplicar a cada elemento.

Devoluciones

Double

El valor máximo de la secuencia.

Excepciones

source o selector es null.

source no contiene ningún elemento.

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.

Nota

En este ejemplo de código se usa una sobrecarga del método que es 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 la sintaxis de la expresión de consulta de Visual Basic, una Aggregate Into Max() cláusula se traduce en una invocación de Max.

Consulte también

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 Decimal máximo.

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 cuyo valor máximo se va a determinar.

selector
Func<TSource,Decimal>

Función de transformación que se va a aplicar a cada elemento.

Devoluciones

Decimal

El valor máximo de la secuencia.

Excepciones

source o selector es null.

source no contiene ningún elemento.

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.

Nota

En este ejemplo de código se usa una sobrecarga del método que es 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 la sintaxis de la expresión de consulta de Visual Basic, una Aggregate Into Max() cláusula se traduce en una invocación de Max.

Consulte también

Se aplica a

Max<TSource>(IEnumerable<TSource>, IComparer<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, System::Collections::Generic::IComparer<TSource> ^ comparer);
public static TSource? Max<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, System.Collections.Generic.IComparer<TSource>? comparer);
static member Max : seq<'Source> * System.Collections.Generic.IComparer<'Source> -> 'Source
<Extension()>
Public Function Max(Of TSource) (source As IEnumerable(Of TSource), comparer As IComparer(Of TSource)) As TSource

Parámetros de tipo

TSource

Tipo de los elementos de source.

Parámetros

source
IEnumerable<TSource>

Secuencia de valores cuyo valor máximo se va a determinar.

comparer
IComparer<TSource>

IComparer<T> que va a comparar los valores.

Devoluciones

TSource

El valor máximo de la secuencia.

Excepciones

source es null.

Ningún objeto de source implementa la interfaz IComparable o IComparable<T>.

Comentarios

Si type 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 solo contiene valores que son null, este método devuelve null.

En la sintaxis de la expresión de consulta de Visual Basic, una Aggregate Into Max() cláusula se traduce en una invocación de Max.

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);
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 cuyo valor máximo se va a determinar.

Devoluciones

TSource

El valor máximo de la secuencia.

Excepciones

source es null.

Ningún objeto de source implementa la interfaz IComparable 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 type 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 solo contiene valores que son null, este método devuelve null.

En la sintaxis de la expresión de consulta de Visual Basic, una Aggregate Into Max() cláusula se traduce en una invocación de Max.

Consulte también

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 Decimal máximo que acepta valores NULL.

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 cuyo valor máximo se va a determinar.

selector
Func<TSource,Nullable<Decimal>>

Función de transformación que se va a aplicar a cada elemento.

Devoluciones

Nullable<Decimal>

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.

Nota

En este ejemplo de código se usa una sobrecarga del método que es 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 la sintaxis de la expresión de consulta de Visual Basic, una Aggregate Into Max() cláusula se traduce en una invocación de Max.

Consulte también

Se aplica a