Freigeben über


Queryable.Max Methode

Definition

Überlädt

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

Ruft für jedes Element eines generischen IQueryable<T> eine Projektionsfunktion auf und gibt den höchsten Ergebniswert zurück.

Max<TSource>(IQueryable<TSource>)

Gibt den Höchstwert in einem generischen IQueryable<T> zurück.

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

Gibt den Höchstwert in einem generischen IQueryable<T> zurück.

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

Quelle:
Queryable.cs
Quelle:
Queryable.cs
Quelle:
Queryable.cs

Ruft für jedes Element eines generischen IQueryable<T> eine Projektionsfunktion auf und gibt den höchsten Ergebniswert zurück.

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

Typparameter

TSource

Der Typ der Elemente von source.

TResult

Der Typ des Werts, der von der durch selector dargestellten Funktion zurückgegeben wird.

Parameter

source
IQueryable<TSource>

Eine Sequenz von Werten, deren Höchstwert bestimmt werden soll.

selector
Expression<Func<TSource,TResult>>

Eine Projektionsfunktion, die auf jedes Element angewendet werden soll.

Gibt zurück

TResult

Der Höchstwert in der Sequenz.

Ausnahmen

source oder selector ist null.

source enthält keine Elemente.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Max<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) der Maximalwert in einer Sequenz von projizierten Werten bestimmt wird.

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.

Hinweise

Diese Methode verfügt über mindestens einen Parameter vom Typ Expression<TDelegate> , dessen Typargument einer der Func<T,TResult> Typen ist. Für diese Parameter können Sie einen Lambdaausdruck übergeben, der zu einem Expression<TDelegate>kompiliert wird.

Die Max<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) -Methode generiert eine MethodCallExpression , die den Aufruf Max<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) selbst als konstruierte generische Methode darstellt. Anschließend übergibt es die MethodCallExpression an die Execute<TResult>(Expression) -Methode von, die IQueryProvider durch die Provider -Eigenschaft des source Parameters dargestellt wird.

Das Abfrageverhalten, das beim Ausführen einer Ausdrucksstruktur auftritt, die den Aufruf Max<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) darstellt, hängt von der Implementierung des Typs des source Parameters ab. Das erwartete Verhalten besteht darin, dass es für jedes Element in source aufruft selector und den Maximalwert zurückgibt.

Gilt für:

Max<TSource>(IQueryable<TSource>)

Quelle:
Queryable.cs
Quelle:
Queryable.cs
Quelle:
Queryable.cs

Gibt den Höchstwert in einem generischen IQueryable<T> zurück.

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

Typparameter

TSource

Der Typ der Elemente von source.

Parameter

source
IQueryable<TSource>

Eine Sequenz von Werten, deren Höchstwert bestimmt werden soll.

Gibt zurück

TSource

Der Höchstwert in der Sequenz.

Ausnahmen

source ist null.

source enthält keine Elemente.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Max<TSource>(IQueryable<TSource>) der Maximalwert in einer Sequenz bestimmt wird.

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.

Hinweise

Die Max<TSource>(IQueryable<TSource>) -Methode generiert eine MethodCallExpression , die den Aufruf Max<TSource>(IQueryable<TSource>) selbst als konstruierte generische Methode darstellt. Anschließend übergibt es die MethodCallExpression an die Execute<TResult>(Expression) -Methode von, die IQueryProvider durch die Provider -Eigenschaft des source Parameters dargestellt wird.

Das Abfrageverhalten, das beim Ausführen einer Ausdrucksstruktur auftritt, die den Aufruf Max<TSource>(IQueryable<TSource>) darstellt, hängt von der Implementierung des Typs des source Parameters ab. Das erwartete Verhalten besteht darin, dass der Maximalwert in sourcezurückgegeben wird.

Gilt für:

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

Quelle:
Queryable.cs
Quelle:
Queryable.cs
Quelle:
Queryable.cs

Gibt den Höchstwert in einem generischen IQueryable<T> zurück.

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

Typparameter

TSource

Der Typ der Elemente von source.

Parameter

source
IQueryable<TSource>

Eine Sequenz von Werten, deren Höchstwert bestimmt werden soll.

comparer
IComparer<TSource>

Der IComparer<T> zum Vergleichen von Werten

Gibt zurück

TSource

Der Höchstwert in der Sequenz.

Ausnahmen

source ist null

Gilt für: