Поделиться через


Queryable.Max Метод

Определение

Перегрузки

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

Вызывает функцию проекции для каждого элемента универсального интерфейса IQueryable<T> и возвращает максимальное результирующее значение.

Max<TSource>(IQueryable<TSource>)

Возвращает максимальное значение для универсального интерфейса IQueryable<T>.

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

Возвращает максимальное значение для универсального интерфейса IQueryable<T>.

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

Исходный код:
Queryable.cs
Исходный код:
Queryable.cs
Исходный код:
Queryable.cs

Вызывает функцию проекции для каждого элемента универсального интерфейса IQueryable<T> и возвращает максимальное результирующее значение.

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

Параметры типа

TSource

Тип элементов source.

TResult

Тип значения, возвращаемого функцией, заданной параметром selector.

Параметры

source
IQueryable<TSource>

Последовательность значений, для которой определяется максимум.

selector
Expression<Func<TSource,TResult>>

Функция проекции, применяемая к каждому элементу.

Возвращаемое значение

TResult

Максимальное значение в последовательности.

Исключения

Параметр source или selector имеет значение null.

Последовательность source не содержит элементов.

Примеры

В следующем примере кода показано, как использовать Max<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) для определения максимального значения в последовательности проецируемых значений.

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.

Комментарии

Этот метод имеет по крайней мере один параметр типа Expression<TDelegate> , аргумент типа которого является одним из Func<T,TResult> типов. Для этих параметров можно передать лямбда-выражение, и оно будет скомпилировано Expression<TDelegate>в .

Метод Max<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) создает объект , MethodCallExpression представляющий вызов Max<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) как сконструированный универсальный метод. Затем он передает в MethodCallExpressionExecute<TResult>(Expression) метод объекта , IQueryProvider представленный свойством Providersource параметра .

Поведение запроса, возникающее в результате выполнения дерева выражений, представляющего вызов Max<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) , зависит от реализации типа source параметра. Ожидаемое поведение заключается в том, что он вызывает selector для каждого элемента в source и возвращает максимальное значение.

Применяется к

Max<TSource>(IQueryable<TSource>)

Исходный код:
Queryable.cs
Исходный код:
Queryable.cs
Исходный код:
Queryable.cs

Возвращает максимальное значение для универсального интерфейса 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

Параметры типа

TSource

Тип элементов source.

Параметры

source
IQueryable<TSource>

Последовательность значений, для которой определяется максимум.

Возвращаемое значение

TSource

Максимальное значение в последовательности.

Исключения

source имеет значение null.

Последовательность source не содержит элементов.

Примеры

В следующем примере кода показано, как использовать Max<TSource>(IQueryable<TSource>) для определения максимального значения в последовательности.

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.

Комментарии

Метод Max<TSource>(IQueryable<TSource>) создает объект , MethodCallExpression представляющий вызов Max<TSource>(IQueryable<TSource>) как сконструированный универсальный метод. Затем он передает в MethodCallExpressionExecute<TResult>(Expression) метод объекта , IQueryProvider представленный свойством Providersource параметра .

Поведение запроса, возникающее в результате выполнения дерева выражений, представляющего вызов Max<TSource>(IQueryable<TSource>) , зависит от реализации типа source параметра. Ожидаемое поведение заключается в том, что он возвращает максимальное значение в source.

Применяется к

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

Исходный код:
Queryable.cs
Исходный код:
Queryable.cs
Исходный код:
Queryable.cs

Возвращает максимальное значение для универсального интерфейса 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

Параметры типа

TSource

Тип элементов source.

Параметры

source
IQueryable<TSource>

Последовательность значений, для которой определяется максимальное значение.

comparer
IComparer<TSource>

Компаратор IComparer<T>, используемый для сравнения значений.

Возвращаемое значение

TSource

Максимальное значение в последовательности.

Исключения

source имеет значение null.

Применяется к