Enumerable.Max 메서드

정의

값 시퀀스의 최대값을 반환합니다.

오버로드

Max(IEnumerable<Nullable<Int32>>)

nullable Int32 값 시퀀스의 최대값을 반환합니다.

Max(IEnumerable<Single>)

Single 값 시퀀스의 최대값을 반환합니다.

Max(IEnumerable<Nullable<Single>>)

nullable Single 값 시퀀스의 최대값을 반환합니다.

Max(IEnumerable<Nullable<Int64>>)

nullable Int64 값 시퀀스의 최대값을 반환합니다.

Max(IEnumerable<Nullable<Double>>)

nullable Double 값 시퀀스의 최대값을 반환합니다.

Max(IEnumerable<Double>)

Double 값 시퀀스의 최대값을 반환합니다.

Max(IEnumerable<Int64>)

Int64 값 시퀀스의 최대값을 반환합니다.

Max(IEnumerable<Int32>)

Int32 값 시퀀스의 최대값을 반환합니다.

Max(IEnumerable<Decimal>)

Decimal 값 시퀀스의 최대값을 반환합니다.

Max(IEnumerable<Nullable<Decimal>>)

nullable Decimal 값 시퀀스의 최대값을 반환합니다.

Max<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>)

제네릭 시퀀스의 각 요소에 대해 변형 함수를 호출하고 최대 결과 값을 반환합니다.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Single>)

시퀀스의 각 요소에 대해 변형 함수를 호출하고 최대 Single 값을 반환합니다.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>)

시퀀스의 각 요소에 대해 변형 함수를 호출하고 최대 nullable Single 값을 반환합니다.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>)

시퀀스의 각 요소에 대해 변형 함수를 호출하고 최대 nullable Int64 값을 반환합니다.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>)

시퀀스의 각 요소에 대해 변형 함수를 호출하고 최대 nullable Int32 값을 반환합니다.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>)

시퀀스의 각 요소에 대해 변형 함수를 호출하고 최대 nullable Decimal 값을 반환합니다.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>)

시퀀스의 각 요소에 대해 변형 함수를 호출하고 최대 nullable Double 값을 반환합니다.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>)

시퀀스의 각 요소에 대해 변형 함수를 호출하고 최대 Int32 값을 반환합니다.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Double>)

시퀀스의 각 요소에 대해 변형 함수를 호출하고 최대 Double 값을 반환합니다.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>)

시퀀스의 각 요소에 대해 변형 함수를 호출하고 최대 Decimal 값을 반환합니다.

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

제네릭 시퀀스의 최대값을 반환합니다.

Max<TSource>(IEnumerable<TSource>)

제네릭 시퀀스의 최대값을 반환합니다.

Max<TSource>(IEnumerable<TSource>, Func<TSource,Int64>)

시퀀스의 각 요소에 대해 변형 함수를 호출하고 최대 Int64 값을 반환합니다.

Max(IEnumerable<Nullable<Int32>>)

nullable Int32 값 시퀀스의 최대값을 반환합니다.

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)

매개 변수

source
IEnumerable<Nullable<Int32>>

최대값을 확인할 nullable Int32 값의 시퀀스입니다.

반환

시퀀스의 Nullable<Int32> 최대값에 해당하는 C# 또는 Nullable(Of Int32) Visual Basic 형식의 값입니다.

예외

sourcenull입니다.

설명

메서드는 Max(IEnumerable<Nullable<Int32>>)IComparable<T> 구현을 Int32 사용하여 값을 비교합니다.

소스 시퀀스가 비어 있거나 인 값만 포함된 경우 이 함수는 null를 반환합니다 null.

Visual Basic 쿼리 식 구문에서 절은 Aggregate Into Max() 의 호출 Max로 변환됩니다.

추가 정보

적용 대상

Max(IEnumerable<Single>)

Single 값 시퀀스의 최대값을 반환합니다.

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

매개 변수

source
IEnumerable<Single>

최대값을 확인할 Single 값의 시퀀스입니다.

반환

시퀀스의 최대값입니다.

예외

source이(가) null인 경우

source에 요소가 없는 경우

설명

메서드는 Max(IEnumerable<Single>)IComparable<T> 구현을 Single 사용하여 값을 비교합니다.

Visual Basic 쿼리 식 구문에서 절은 Aggregate Into Max() 의 호출 Max로 변환됩니다.

추가 정보

적용 대상

Max(IEnumerable<Nullable<Single>>)

nullable Single 값 시퀀스의 최대값을 반환합니다.

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)

매개 변수

source
IEnumerable<Nullable<Single>>

최대값을 확인할 nullable Single 값의 시퀀스입니다.

반환

시퀀스의 Nullable<Single> 최대값에 해당하는 C# 또는 Nullable(Of Single) Visual Basic 형식의 값입니다.

예외

sourcenull입니다.

설명

메서드는 Max(IEnumerable<Nullable<Single>>)IComparable<T> 구현을 Single 사용하여 값을 비교합니다.

소스 시퀀스가 비어 있거나 인 값만 포함된 경우 이 함수는 null를 반환합니다 null.

Visual Basic 쿼리 식 구문에서 절은 Aggregate Into Max() 의 호출 Max로 변환됩니다.

추가 정보

적용 대상

Max(IEnumerable<Nullable<Int64>>)

nullable Int64 값 시퀀스의 최대값을 반환합니다.

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)

매개 변수

source
IEnumerable<Nullable<Int64>>

최대값을 확인할 nullable Int64 값의 시퀀스입니다.

반환

시퀀스의 Nullable<Int64> 최대값에 해당하는 C# 또는 Nullable(Of Int64) Visual Basic 형식의 값입니다.

예외

sourcenull입니다.

설명

메서드는 Max(IEnumerable<Nullable<Int64>>)IComparable<T> 구현을 Int64 사용하여 값을 비교합니다.

소스 시퀀스가 비어 있거나 인 값만 포함된 경우 이 함수는 null를 반환합니다 null.

Visual Basic 쿼리 식 구문에서 절은 Aggregate Into Max() 의 호출 Max로 변환됩니다.

추가 정보

적용 대상

Max(IEnumerable<Nullable<Double>>)

nullable Double 값 시퀀스의 최대값을 반환합니다.

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)

매개 변수

source
IEnumerable<Nullable<Double>>

최대값을 확인할 nullable Double 값의 시퀀스입니다.

반환

시퀀스의 Nullable<Double> 최대값에 해당하는 C# 또는 Nullable(Of Double) Visual Basic 형식의 값입니다.

예외

source이(가) null인 경우

예제

다음 코드 예제에서는 를 사용하여 Max(IEnumerable<Nullable<Double>>) 시퀀스의 최대값을 확인하는 방법을 보여 줍니다.

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

설명

메서드는 Max(IEnumerable<Nullable<Double>>)IComparable<T> 구현을 Double 사용하여 값을 비교합니다.

소스 시퀀스가 비어 있거나 인 값만 포함된 경우 이 함수는 null를 반환합니다 null.

Visual Basic 쿼리 식 구문에서 절은 Aggregate Into Max() 의 호출 Max로 변환됩니다.

추가 정보

적용 대상

Max(IEnumerable<Double>)

Double 값 시퀀스의 최대값을 반환합니다.

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

매개 변수

source
IEnumerable<Double>

최대값을 확인할 Double 값의 시퀀스입니다.

반환

시퀀스의 최대값입니다.

예외

source이(가) null인 경우

source에 요소가 없는 경우

설명

메서드는 Max(IEnumerable<Double>)IComparable<T> 구현을 Double 사용하여 값을 비교합니다.

Visual Basic 쿼리 식 구문에서 절은 Aggregate Into Max() 의 호출 Max로 변환됩니다.

추가 정보

적용 대상

Max(IEnumerable<Int64>)

Int64 값 시퀀스의 최대값을 반환합니다.

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

매개 변수

source
IEnumerable<Int64>

최대값을 확인할 Int64 값의 시퀀스입니다.

반환

시퀀스의 최대값입니다.

예외

source이(가) null인 경우

source에 요소가 없는 경우

예제

다음 코드 예제에서는 를 사용하여 Max(IEnumerable<Int64>) 시퀀스의 최대값을 확인하는 방법을 보여 줍니다.

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

설명

메서드는 Max(IEnumerable<Int64>)IComparable<T> 구현을 Int64 사용하여 값을 비교합니다.

Visual Basic 쿼리 식 구문에서 절은 Aggregate Into Max() 의 호출 Max로 변환됩니다.

추가 정보

적용 대상

Max(IEnumerable<Int32>)

Int32 값 시퀀스의 최대값을 반환합니다.

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

매개 변수

source
IEnumerable<Int32>

최대값을 확인할 Int32 값의 시퀀스입니다.

반환

시퀀스의 최대값입니다.

예외

source이(가) null인 경우

source에 요소가 없는 경우

설명

메서드는 Max(IEnumerable<Int32>)IComparable<T> 구현을 Int32 사용하여 값을 비교합니다.

Visual Basic 쿼리 식 구문에서 절은 Aggregate Into Max() 의 호출 Max로 변환됩니다.

추가 정보

적용 대상

Max(IEnumerable<Decimal>)

Decimal 값 시퀀스의 최대값을 반환합니다.

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

매개 변수

source
IEnumerable<Decimal>

최대값을 확인할 Decimal 값의 시퀀스입니다.

반환

시퀀스의 최대값입니다.

예외

source이(가) null인 경우

source에 요소가 없는 경우

설명

메서드는 Max(IEnumerable<Decimal>)IComparable<T> 구현을 Decimal 사용하여 값을 비교합니다.

Visual Basic 쿼리 식 구문에서 절은 Aggregate Into Max() 의 호출 Max로 변환됩니다.

추가 정보

적용 대상

Max(IEnumerable<Nullable<Decimal>>)

nullable Decimal 값 시퀀스의 최대값을 반환합니다.

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)

매개 변수

source
IEnumerable<Nullable<Decimal>>

최대값을 확인할 nullable Decimal 값의 시퀀스입니다.

반환

시퀀스의 Nullable<Decimal> 최대값에 해당하는 C# 또는 Nullable(Of Decimal) Visual Basic 형식의 값입니다.

예외

sourcenull입니다.

설명

메서드는 Max(IEnumerable<Nullable<Decimal>>)IComparable<T> 구현을 Decimal 사용하여 값을 비교합니다.

소스 시퀀스가 비어 있거나 인 값만 포함된 경우 이 함수는 null를 반환합니다 null.

Visual Basic 쿼리 식 구문에서 절은 Aggregate Into Max() 의 호출 Max로 변환됩니다.

추가 정보

적용 대상

Max<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>)

제네릭 시퀀스의 각 요소에 대해 변형 함수를 호출하고 최대 결과 값을 반환합니다.

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);
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

형식 매개 변수

TSource

source 요소의 형식입니다.

TResult

selector에서 반환하는 값의 형식입니다.

매개 변수

source
IEnumerable<TSource>

최대값을 확인할 값의 시퀀스입니다.

selector
Func<TSource,TResult>

각 요소에 적용할 변환 함수입니다.

반환

TResult

시퀀스의 최대값입니다.

예외

source 또는 selectornull인 경우

예제

다음 코드 예제에서는 를 사용하여 Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) 예상 값 시퀀스에서 최대값을 확인하는 방법을 보여 줍니다.

참고

이 코드 예제에서는 이 문서에서 설명하는 특정 오버로드와 다른 메서드의 오버로드를 사용합니다. 예제를 이 문서에서 설명하는 오버로드로 확장하려면 함수 본문을 변경합니다 selector .

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

설명

형식 TResult 이 를 구현하는 IComparable<T>경우 이 메서드는 해당 구현을 사용하여 값을 비교합니다. 그렇지 않으면 형식 TResult 이 를 구현하는 IComparable경우 해당 구현은 값을 비교하는 데 사용됩니다.

Visual Basic 쿼리 식 구문에서 절은 Aggregate Into Max() 의 호출 Max로 변환됩니다.

추가 정보

적용 대상

Max<TSource>(IEnumerable<TSource>, Func<TSource,Single>)

시퀀스의 각 요소에 대해 변형 함수를 호출하고 최대 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

형식 매개 변수

TSource

source 요소의 형식입니다.

매개 변수

source
IEnumerable<TSource>

최대값을 확인할 값의 시퀀스입니다.

selector
Func<TSource,Single>

각 요소에 적용할 변환 함수입니다.

반환

시퀀스의 최대값입니다.

예외

source 또는 selectornull인 경우

source에 요소가 없는 경우

예제

다음 코드 예제에서는 를 사용하여 Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) 예상 값 시퀀스에서 최대값을 확인하는 방법을 보여 줍니다.

참고

이 코드 예제에서는 이 문서에서 설명하는 특정 오버로드와 다른 메서드의 오버로드를 사용합니다. 예제를 이 문서에서 설명하는 오버로드로 확장하려면 함수 본문을 변경합니다 selector .

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

설명

메서드는 Max<TSource>(IEnumerable<TSource>, Func<TSource,Single>)IComparable<T> 구현을 Single 사용하여 값을 비교합니다.

의 멤버를 숫자 형식, 특히 Single로 프로젝트하는 함수 를 selector제공하는 경우 임의 source 값 시퀀스에 이 메서드를 적용할 수 있습니다.

Visual Basic 쿼리 식 구문에서 절은 Aggregate Into Max() 의 호출 Max로 변환됩니다.

추가 정보

적용 대상

Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>)

시퀀스의 각 요소에 대해 변형 함수를 호출하고 최대 nullable 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)

형식 매개 변수

TSource

source 요소의 형식입니다.

매개 변수

source
IEnumerable<TSource>

최대값을 확인할 값의 시퀀스입니다.

selector
Func<TSource,Nullable<Single>>

각 요소에 적용할 변환 함수입니다.

반환

시퀀스의 Nullable<Single> 최대값에 해당하는 C# 또는 Nullable(Of Single) Visual Basic 형식의 값입니다.

예외

source 또는 selectornull인 경우

예제

다음 코드 예제에서는 를 사용하여 Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) 예상 값 시퀀스에서 최대값을 확인하는 방법을 보여 줍니다.

참고

이 코드 예제에서는 이 문서에서 설명하는 특정 오버로드와 다른 메서드의 오버로드를 사용합니다. 예제를 이 문서에서 설명하는 오버로드로 확장하려면 함수 본문을 변경합니다 selector .

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

설명

메서드는 Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>)IComparable<T> 구현을 Single 사용하여 값을 비교합니다.

함수를 제공하는 경우 이 메서드를 임의의 값 시퀀스에 적용할 수 있습니다. 이 함수 selector는 의 멤버 source 를 숫자 형식, 특히 Nullable<Single> C# 또는 Nullable(Of Single) Visual Basic에서 프로젝트합니다.

Visual Basic 쿼리 식 구문에서 절은 Aggregate Into Max() 의 호출 Max로 변환됩니다.

추가 정보

적용 대상

Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>)

시퀀스의 각 요소에 대해 변형 함수를 호출하고 최대 nullable 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)

형식 매개 변수

TSource

source 요소의 형식입니다.

매개 변수

source
IEnumerable<TSource>

최대값을 확인할 값의 시퀀스입니다.

selector
Func<TSource,Nullable<Int64>>

각 요소에 적용할 변환 함수입니다.

반환

시퀀스의 Nullable<Int64> 최대값에 해당하는 C# 또는 Nullable(Of Int64) Visual Basic 형식의 값입니다.

예외

source 또는 selectornull인 경우

예제

다음 코드 예제에서는 를 사용하여 Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) 예상 값 시퀀스에서 최대값을 확인하는 방법을 보여 줍니다.

참고

이 코드 예제에서는 이 문서에서 설명하는 특정 오버로드와 다른 메서드의 오버로드를 사용합니다. 예제를 이 문서에서 설명하는 오버로드로 확장하려면 함수 본문을 변경합니다 selector .

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

설명

메서드는 Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>)IComparable<T> 구현을 Int64 사용하여 값을 비교합니다.

함수를 제공하는 경우 이 메서드를 임의의 값 시퀀스에 적용할 수 있습니다. 이 함수 selector는 의 멤버 source 를 숫자 형식, 특히 Nullable<Int64> C# 또는 Nullable(Of Int64) Visual Basic에서 프로젝트합니다.

Visual Basic 쿼리 식 구문에서 절은 Aggregate Into Max() 의 호출 Max로 변환됩니다.

추가 정보

적용 대상

Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>)

시퀀스의 각 요소에 대해 변형 함수를 호출하고 최대 nullable 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)

형식 매개 변수

TSource

source 요소의 형식입니다.

매개 변수

source
IEnumerable<TSource>

최대값을 확인할 값의 시퀀스입니다.

selector
Func<TSource,Nullable<Int32>>

각 요소에 적용할 변환 함수입니다.

반환

시퀀스의 Nullable<Int32> 최대값에 해당하는 C# 또는 Nullable(Of Int32) Visual Basic 형식의 값입니다.

예외

source 또는 selectornull인 경우

예제

다음 코드 예제에서는 를 사용하여 Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) 예상 값 시퀀스에서 최대값을 확인하는 방법을 보여 줍니다.

참고

이 코드 예제에서는 이 문서에서 설명하는 특정 오버로드와 다른 메서드의 오버로드를 사용합니다. 예제를 이 문서에서 설명하는 오버로드로 확장하려면 함수 본문을 변경합니다 selector .

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

설명

메서드는 Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>)IComparable<T> 구현을 Int32 사용하여 값을 비교합니다.

함수를 제공하는 경우 이 메서드를 임의의 값 시퀀스에 적용할 수 있습니다. 이 함수 selector는 의 멤버 source 를 숫자 형식, 특히 Nullable<Int32> C# 또는 Nullable(Of Int32) Visual Basic에서 프로젝트합니다.

Visual Basic 쿼리 식 구문에서 절은 Aggregate Into Max() 의 호출 Max로 변환됩니다.

추가 정보

적용 대상

Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>)

시퀀스의 각 요소에 대해 변형 함수를 호출하고 최대 nullable 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)

형식 매개 변수

TSource

source 요소의 형식입니다.

매개 변수

source
IEnumerable<TSource>

최대값을 확인할 값의 시퀀스입니다.

selector
Func<TSource,Nullable<Decimal>>

각 요소에 적용할 변환 함수입니다.

반환

시퀀스의 Nullable<Decimal> 최대값에 해당하는 C# 또는 Nullable(Of Decimal) Visual Basic 형식의 값입니다.

예외

source 또는 selectornull인 경우

예제

다음 코드 예제에서는 를 사용하여 Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) 예상 값 시퀀스에서 최대값을 확인하는 방법을 보여 줍니다.

참고

이 코드 예제에서는 이 문서에서 설명하는 특정 오버로드와 다른 메서드의 오버로드를 사용합니다. 예제를 이 문서에서 설명하는 오버로드로 확장하려면 함수 본문을 변경합니다 selector .

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

설명

메서드는 Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>)IComparable<T> 구현을 Decimal 사용하여 값을 비교합니다.

함수를 제공하는 경우 이 메서드를 임의의 값 시퀀스에 적용할 수 있습니다. 이 함수 selector는 의 멤버 source 를 숫자 형식, 특히 Nullable<Decimal> C# 또는 Nullable(Of Decimal) Visual Basic에서 프로젝트합니다.

Visual Basic 쿼리 식 구문에서 절은 Aggregate Into Max() 의 호출 Max로 변환됩니다.

추가 정보

적용 대상

Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>)

시퀀스의 각 요소에 대해 변형 함수를 호출하고 최대 nullable 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)

형식 매개 변수

TSource

source 요소의 형식입니다.

매개 변수

source
IEnumerable<TSource>

최대값을 확인할 값의 시퀀스입니다.

selector
Func<TSource,Nullable<Double>>

각 요소에 적용할 변환 함수입니다.

반환

시퀀스의 Nullable<Double> 최대값에 해당하는 C# 또는 Nullable(Of Double) Visual Basic 형식의 값입니다.

예외

source 또는 selectornull인 경우

예제

다음 코드 예제에서는 를 사용하여 Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) 예상 값 시퀀스에서 최대값을 확인하는 방법을 보여 줍니다.

참고

이 코드 예제에서는 이 문서에서 설명하는 특정 오버로드와 다른 메서드의 오버로드를 사용합니다. 예제를 이 문서에서 설명하는 오버로드로 확장하려면 함수 본문을 변경합니다 selector .

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

설명

메서드는 Max<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>)IComparable<T> 구현을 Double 사용하여 값을 비교합니다.

함수를 제공하는 경우 이 메서드를 임의의 값 시퀀스에 적용할 수 있습니다. 이 함수 selector는 의 멤버 source 를 숫자 형식, 특히 Nullable<Double> C# 또는 Nullable(Of Double) Visual Basic에서 프로젝트합니다.

Visual Basic 쿼리 식 구문에서 절은 Aggregate Into Max() 의 호출 Max로 변환됩니다.

추가 정보

적용 대상

Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>)

시퀀스의 각 요소에 대해 변형 함수를 호출하고 최대 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

형식 매개 변수

TSource

source 요소의 형식입니다.

매개 변수

source
IEnumerable<TSource>

최대값을 확인할 값의 시퀀스입니다.

selector
Func<TSource,Int32>

각 요소에 적용할 변환 함수입니다.

반환

시퀀스의 최대값입니다.

예외

source 또는 selectornull인 경우

source에 요소가 없는 경우

예제

다음 코드 예제에서는 를 사용하여 Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) 예상 값 시퀀스에서 최대값을 확인하는 방법을 보여 줍니다.

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

설명

메서드는 Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>)IComparable<T> 구현을 Int32 사용하여 값을 비교합니다.

의 멤버를 숫자 형식, 특히 Int32로 프로젝트하는 함수 를 selector제공하는 경우 임의 source 값 시퀀스에 이 메서드를 적용할 수 있습니다.

Visual Basic 쿼리 식 구문에서 절은 Aggregate Into Max() 의 호출 Max로 변환됩니다.

추가 정보

적용 대상

Max<TSource>(IEnumerable<TSource>, Func<TSource,Double>)

시퀀스의 각 요소에 대해 변형 함수를 호출하고 최대 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

형식 매개 변수

TSource

source 요소의 형식입니다.

매개 변수

source
IEnumerable<TSource>

최대값을 확인할 값의 시퀀스입니다.

selector
Func<TSource,Double>

각 요소에 적용할 변환 함수입니다.

반환

시퀀스의 최대값입니다.

예외

source 또는 selectornull인 경우

source에 요소가 없는 경우

예제

다음 코드 예제에서는 를 사용하여 Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) 예상 값 시퀀스에서 최대값을 확인하는 방법을 보여 줍니다.

참고

이 코드 예제에서는 이 문서에서 설명하는 특정 오버로드와 다른 메서드의 오버로드를 사용합니다. 예제를 이 문서에서 설명하는 오버로드로 확장하려면 함수 본문을 변경합니다 selector .

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

설명

메서드는 Max<TSource>(IEnumerable<TSource>, Func<TSource,Double>)IComparable<T> 구현을 Double 사용하여 값을 비교합니다.

의 멤버를 숫자 형식, 특히 Double로 프로젝트하는 함수 를 selector제공하는 경우 임의 source 값 시퀀스에 이 메서드를 적용할 수 있습니다.

Visual Basic 쿼리 식 구문에서 절은 Aggregate Into Max() 의 호출 Max로 변환됩니다.

추가 정보

적용 대상

Max<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>)

시퀀스의 각 요소에 대해 변형 함수를 호출하고 최대 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

형식 매개 변수

TSource

source 요소의 형식입니다.

매개 변수

source
IEnumerable<TSource>

최대값을 확인할 값의 시퀀스입니다.

selector
Func<TSource,Decimal>

각 요소에 적용할 변환 함수입니다.

반환

시퀀스의 최대값입니다.

예외

source 또는 selectornull인 경우

source에 요소가 없는 경우

예제

다음 코드 예제에서는 를 사용하여 Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) 예상 값 시퀀스에서 최대값을 확인하는 방법을 보여 줍니다.

참고

이 코드 예제에서는 이 문서에서 설명하는 특정 오버로드와 다른 메서드의 오버로드를 사용합니다. 예제를 이 문서에서 설명하는 오버로드로 확장하려면 함수 본문을 변경합니다 selector .

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

설명

메서드는 Max<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>)IComparable<T> 구현을 Decimal 사용하여 값을 비교합니다.

의 멤버를 숫자 형식, 특히 Decimal로 프로젝트하는 함수 를 selector제공하는 경우 임의 source 값 시퀀스에 이 메서드를 적용할 수 있습니다.

Visual Basic 쿼리 식 구문에서 절은 Aggregate Into Max() 의 호출 Max로 변환됩니다.

추가 정보

적용 대상

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

제네릭 시퀀스의 최대값을 반환합니다.

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

형식 매개 변수

TSource

source 요소의 형식입니다.

매개 변수

source
IEnumerable<TSource>

최대값을 확인할 값의 시퀀스입니다.

comparer
IComparer<TSource>

값을 비교할 IComparer<T>입니다.

반환

TSource

시퀀스의 최대값입니다.

예외

source이(가) null인 경우

source의 개체가 IComparable 또는 IComparable<T> 인터페이스를 구현하지 않습니다.

설명

형식 TSource 이 를 구현하는 IComparable<T>경우 메서드는 Max<TSource>(IEnumerable<TSource>) 해당 구현을 사용하여 값을 비교합니다. 그렇지 않으면 형식 TSource 이 를 구현하는 IComparable경우 해당 구현은 값을 비교하는 데 사용됩니다.

가 참조 형식이고 원본 시퀀스가 비어 있거나 인 값만 포함된 경우 TSource 이 메서드는 null를 반환합니다 null.

Visual Basic 쿼리 식 구문에서 절은 Aggregate Into Max() 의 호출 Max로 변환됩니다.

적용 대상

Max<TSource>(IEnumerable<TSource>)

제네릭 시퀀스의 최대값을 반환합니다.

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);
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

형식 매개 변수

TSource

source 요소의 형식입니다.

매개 변수

source
IEnumerable<TSource>

최대값을 확인할 값의 시퀀스입니다.

반환

TSource

시퀀스의 최대값입니다.

예외

source이(가) null인 경우

source의 개체가 IComparable 또는 IComparable<T> 인터페이스를 구현하지 않습니다.

예제

다음 코드 예제에서는 를 사용하여 Max<TSource>(IEnumerable<TSource>) 개체 시퀀스에서 IComparable<T> 최대값을 확인하는 방법을 보여 줍니다.

/// <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

설명

형식 TSource 이 를 구현하는 IComparable<T>경우 메서드는 Max<TSource>(IEnumerable<TSource>) 해당 구현을 사용하여 값을 비교합니다. 그렇지 않으면 형식 TSource 이 를 구현하는 IComparable경우 해당 구현은 값을 비교하는 데 사용됩니다.

가 참조 형식이고 원본 시퀀스가 비어 있거나 인 값만 포함된 경우 TSource 이 메서드는 null를 반환합니다 null.

Visual Basic 쿼리 식 구문에서 절은 Aggregate Into Max() 의 호출 Max로 변환됩니다.

추가 정보

적용 대상

Max<TSource>(IEnumerable<TSource>, Func<TSource,Int64>)

시퀀스의 각 요소에 대해 변형 함수를 호출하고 최대 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

형식 매개 변수

TSource

source 요소의 형식입니다.

매개 변수

source
IEnumerable<TSource>

최대값을 확인할 값의 시퀀스입니다.

selector
Func<TSource,Int64>

각 요소에 적용할 변환 함수입니다.

반환

시퀀스의 최대값입니다.

예외

source 또는 selectornull인 경우

source에 요소가 없는 경우

예제

다음 코드 예제에서는 를 사용하여 Max<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) 예상 값 시퀀스에서 최대값을 확인하는 방법을 보여 줍니다.

참고

이 코드 예제에서는 이 문서에서 설명하는 특정 오버로드와 다른 메서드의 오버로드를 사용합니다. 예제를 이 문서에서 설명하는 오버로드로 확장하려면 함수 본문을 변경합니다 selector .

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

설명

메서드는 Max<TSource>(IEnumerable<TSource>, Func<TSource,Int64>)IComparable<T> 구현을 Int64 사용하여 값을 비교합니다.

의 멤버를 숫자 형식, 특히 로 프로젝트하는 함수를 selector제공하는 경우 임의 source 값 시퀀스에 이 메서드를 적용할 수 있습니다 Int64.

Visual Basic 쿼리 식 구문에서 절은 Aggregate Into Max() 호출로 Max변환됩니다.

추가 정보

적용 대상