Condividi tramite


Queryable.Max Metodo

Definizione

Overload

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

Richiama una funzione di proiezione su ogni elemento di un generico oggetto IQueryable<T> e restituisce il valore massimo risultante.

Max<TSource>(IQueryable<TSource>)

Restituisce il valore massimo di un generico oggetto IQueryable<T>.

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

Restituisce il valore massimo di un generico oggetto IQueryable<T>.

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

Origine:
Queryable.cs
Origine:
Queryable.cs
Origine:
Queryable.cs

Richiama una funzione di proiezione su ogni elemento di un generico oggetto IQueryable<T> e restituisce il valore massimo risultante.

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

Parametri di tipo

TSource

Tipo degli elementi di source.

TResult

Tipo del valore restituito dalla funzione rappresentata dall'oggetto selector.

Parametri

source
IQueryable<TSource>

Una sequenza di valori della quale determinare il massimo.

selector
Expression<Func<TSource,TResult>>

Funzione di proiezione da applicare a ogni elemento.

Restituisce

TResult

Valore massimo della sequenza.

Eccezioni

source o selector è null.

source non contiene elementi.

Esempio

Nell'esempio di codice seguente viene illustrato come usare Max<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) per determinare il valore massimo in una sequenza di valori proiettati.

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.

Commenti

Questo metodo ha almeno un parametro di tipo il Func<T,TResult> cui argomento di tipo Expression<TDelegate> è uno dei tipi. Per questi parametri, è possibile passare un'espressione lambda e verrà compilata in un Expression<TDelegate>oggetto .

Il Max<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) metodo genera un MethodCallExpression oggetto che rappresenta la chiamata Max<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) stessa come metodo generico costruito. Passa quindi l'oggetto MethodCallExpression al Execute<TResult>(Expression) metodo dell'oggetto IQueryProvider rappresentato dalla Provider proprietà del source parametro.

Il comportamento della query che si verifica come risultato dell'esecuzione di un albero delle espressioni che rappresenta la chiamata Max<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) dipende dall'implementazione del tipo del source parametro. Il comportamento previsto è che richiama selector su ogni elemento in source e restituisce il valore massimo.

Si applica a

Max<TSource>(IQueryable<TSource>)

Origine:
Queryable.cs
Origine:
Queryable.cs
Origine:
Queryable.cs

Restituisce il valore massimo di un generico oggetto IQueryable<T>.

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

Parametri di tipo

TSource

Tipo degli elementi di source.

Parametri

source
IQueryable<TSource>

Una sequenza di valori della quale determinare il massimo.

Restituisce

TSource

Valore massimo della sequenza.

Eccezioni

source è null.

source non contiene elementi.

Esempio

Nell'esempio di codice seguente viene illustrato come usare Max<TSource>(IQueryable<TSource>) per determinare il valore massimo in una sequenza.

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.

Commenti

Il Max<TSource>(IQueryable<TSource>) metodo genera un MethodCallExpression oggetto che rappresenta la chiamata Max<TSource>(IQueryable<TSource>) stessa come metodo generico costruito. Passa quindi l'oggetto MethodCallExpression al Execute<TResult>(Expression) metodo dell'oggetto IQueryProvider rappresentato dalla Provider proprietà del source parametro.

Il comportamento della query che si verifica come risultato dell'esecuzione di un albero delle espressioni che rappresenta la chiamata Max<TSource>(IQueryable<TSource>) dipende dall'implementazione del tipo del source parametro. Il comportamento previsto è che restituisce il valore massimo in source.

Si applica a

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

Origine:
Queryable.cs
Origine:
Queryable.cs
Origine:
Queryable.cs

Restituisce il valore massimo di un generico oggetto IQueryable<T>.

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

Parametri di tipo

TSource

Tipo degli elementi di source.

Parametri

source
IQueryable<TSource>

Sequenza di valori di cui determinare il valore massimo.

comparer
IComparer<TSource>

Oggetto IComparer<T> per confrontare i valori.

Restituisce

TSource

Valore massimo della sequenza.

Eccezioni

source è null.

Si applica a