Queryable.Max Método

Definición

Sobrecargas

Max<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>)

Invoca una función de proyección en cada elemento de una interfaz IQueryable<T> genérica y devuelve el valor máximo resultante.

Max<TSource>(IQueryable<TSource>)

Devuelve el valor máximo de una interfaz IQueryable<T> genérica.

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

Devuelve el valor máximo de una interfaz IQueryable<T> genérica.

Max<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>)

Invoca una función de proyección en cada elemento de una interfaz IQueryable<T> genérica y devuelve el valor máximo resultante.

public:
generic <typename TSource, typename TResult>
[System::Runtime::CompilerServices::Extension]
 static TResult Max(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, TResult> ^> ^ selector);
public static TResult Max<TSource,TResult> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TResult>> selector);
public static TResult? Max<TSource,TResult> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TResult>> selector);
static member Max : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, 'Result>> -> 'Result
<Extension()>
Public Function Max(Of TSource, TResult) (source As IQueryable(Of TSource), selector As Expression(Of Func(Of TSource, TResult))) As TResult

Parámetros de tipo

TSource

Tipo de los elementos de source.

TResult

Tipo del valor devuelto por la función representada por selector.

Parámetros

source
IQueryable<TSource>

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

selector
Expression<Func<TSource,TResult>>

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

Devoluciones

TResult

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,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) 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 MaxEx2()
{
    Pet[] pets = { new Pet { Name="Barley", Age=8 },
                   new Pet { Name="Boots", Age=4 },
                   new Pet { Name="Whiskers", Age=1 } };

    // Add Pet.Age to the length of Pet.Name
    // to determine the "maximum" Pet object in the array.
    int max =
        pets.AsQueryable().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

Shared Sub MaxEx2()
    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}}

    ' Add Pet.Age to the length of Pet.Name
    ' to determine the "maximum" Pet object in the array.
    Dim max As Integer = _
        pets.AsQueryable().Max(Function(pet) pet.Age + pet.Name.Length)

    MsgBox(String.Format("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.

Comentarios

Este método tiene al menos un parámetro de tipo cuyo argumento de tipo Expression<TDelegate> es uno de los Func<T,TResult> tipos. Para estos parámetros, puede pasar una expresión lambda y se compilará en .Expression<TDelegate>

El Max<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) método genera un MethodCallExpression objeto que representa llamarse Max<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) a sí mismo como un método genérico construido. A continuación, pasa al MethodCallExpression Execute<TResult>(Expression) método del IQueryProvider representado por la Provider propiedad del source parámetro .

El comportamiento de la consulta que se produce como resultado de ejecutar un árbol de expresión que representa la llamada Max<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) depende de la implementación del tipo del source parámetro. El comportamiento esperado es que invoca selector en cada elemento de source y devuelve el valor máximo.

Se aplica a

Max<TSource>(IQueryable<TSource>)

Devuelve el valor máximo de una interfaz IQueryable<T> genérica.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static TSource Max(System::Linq::IQueryable<TSource> ^ source);
public static TSource Max<TSource> (this System.Linq.IQueryable<TSource> source);
public static TSource? Max<TSource> (this System.Linq.IQueryable<TSource> source);
static member Max : System.Linq.IQueryable<'Source> -> 'Source
<Extension()>
Public Function Max(Of TSource) (source As IQueryable(Of TSource)) As TSource

Parámetros de tipo

TSource

Tipo de los elementos de source.

Parámetros

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

source no contiene ningún elemento.

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar Max<TSource>(IQueryable<TSource>) para determinar el valor máximo en una secuencia.

List<long> longs = new List<long> { 4294967296L, 466855135L, 81125L };

long max = longs.AsQueryable().Max();

Console.WriteLine("The largest number is {0}.", max);

/*
    This code produces the following output:

    The largest number is 4294967296.
*/
Dim longs As New List(Of Long)(New Long() {4294967296L, 466855135L, 81125L})

Dim max As Long = longs.AsQueryable().Max()

MsgBox(String.Format("The largest number is {0}.", max))

'This code produces the following output:

'The largest number is 4294967296.

Comentarios

El Max<TSource>(IQueryable<TSource>) método genera un MethodCallExpression objeto que representa llamarse Max<TSource>(IQueryable<TSource>) a sí mismo como un método genérico construido. A continuación, pasa al MethodCallExpression Execute<TResult>(Expression) método del IQueryProvider representado por la Provider propiedad del source parámetro .

El comportamiento de la consulta que se produce como resultado de ejecutar un árbol de expresión que representa la llamada Max<TSource>(IQueryable<TSource>) depende de la implementación del tipo del source parámetro. El comportamiento esperado es que devuelve el valor máximo en source.

Se aplica a

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

Devuelve el valor máximo de una interfaz IQueryable<T> genérica.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static TSource Max(System::Linq::IQueryable<TSource> ^ source, System::Collections::Generic::IComparer<TSource> ^ comparer);
public static TSource? Max<TSource> (this System.Linq.IQueryable<TSource> source, System.Collections.Generic.IComparer<TSource>? comparer);
static member Max : System.Linq.IQueryable<'Source> * System.Collections.Generic.IComparer<'Source> -> 'Source
<Extension()>
Public Function Max(Of TSource) (source As IQueryable(Of TSource), comparer As IComparer(Of TSource)) As TSource

Parámetros de tipo

TSource

Tipo de los elementos de source.

Parámetros

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

Se aplica a