Enumerable.Max Método

Definición

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

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

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

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

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

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

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

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

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

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

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

TResult

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

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.

selector
Func<TSource,Single>

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.

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

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.

selector
Func<TSource,Nullable<Single>>

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

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.

selector
Func<TSource,Nullable<Int64>>

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

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.

selector
Func<TSource,Nullable<Int32>>

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

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.

selector
Func<TSource,Nullable<Double>>

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

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.

selector
Func<TSource,Int64>

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.

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

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.

selector
Func<TSource,Int32>

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.

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

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.

selector
Func<TSource,Double>

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.

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

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.

selector
Func<TSource,Decimal>

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.

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

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

TSource

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

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.

selector
Func<TSource,Nullable<Decimal>>

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

Se aplica a