Enumerable.MaxBy 메서드

정의

오버로드

Name Description
MaxBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)

지정된 키 선택기 함수 및 키 비교자에 따라 제네릭 시퀀스의 최대값을 반환합니다.

MaxBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

지정된 키 선택기 함수에 따라 제네릭 시퀀스의 최대값을 반환합니다.

MaxBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)

Source:
Max.cs
Source:
Max.cs
Source:
Max.cs
Source:
Max.cs
Source:
Max.cs

지정된 키 선택기 함수 및 키 비교자에 따라 제네릭 시퀀스의 최대값을 반환합니다.

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

형식 매개 변수

TSource

의 요소 형식입니다 source.

TKey

요소를 비교할 키의 형식입니다.

매개 변수

source
IEnumerable<TSource>

최대값을 결정하는 값 시퀀스입니다.

keySelector
Func<TSource,TKey>

각 요소에 대한 키를 추출하는 함수입니다.

comparer
IComparer<TKey>

IComparer<T> 키를 비교할 수 있습니다.

반품

TSource

시퀀스의 최대 키가 있는 값입니다.

예외

sourcenull입니다.

추출된 source 키가 없거나 IComparable<T> 인터페이스를 구현하지 IComparable 않습니다.

TSource 는 기본 형식이고 소스 시퀀스는 비어 있습니다.

예제

다음 코드 예제에서는 최대값을 확인할 때 대/소문자 구분을 무시하기 위해 사용자 지정 비교자와 함께 사용하는 MaxBy 방법을 보여 줍니다.

(string Name, int Quantity)[] inventory =
{
    ("apple", 10),
    ("BANANA", 5),
    ("Cherry", 20)
};

// Find the product with the maximum name alphabetically, ignoring casing differences.
// 'C' is correctly identified as greater than 'a' and 'B' when case is ignored.
var maxIgnoreCase = inventory.MaxBy(item => item.Name, StringComparer.OrdinalIgnoreCase);
Console.WriteLine($"Case-insensitive comparison: {maxIgnoreCase.Name}");

/*
This code produces the following output:

Case-insensitive comparison: Cherry
*/
</형식>

설명

원본 시퀀스가 비어 있는 경우 원본 유형에 따라 두 가지 가능한 결과가 발생할 수 있습니다. nullable 형식인 경우 TSource 이 메서드는 .를 반환합니다 null. 기본 형식과 같이 null을 허용하지 않는 구조체인 경우 TSource throw InvalidOperationException 됩니다.

소스 시퀀스에 값만 포함된 경우 이 메서드는 반환합니다nullnull.

<format type="text/markdown">

적용 대상

MaxBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Source:
Max.cs
Source:
Max.cs
Source:
Max.cs
Source:
Max.cs
Source:
Max.cs

지정된 키 선택기 함수에 따라 제네릭 시퀀스의 최대값을 반환합니다.

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

형식 매개 변수

TSource

의 요소 형식입니다 source.

TKey

요소를 비교할 키의 형식입니다.

매개 변수

source
IEnumerable<TSource>

최대값을 결정하는 값 시퀀스입니다.

keySelector
Func<TSource,TKey>

각 요소에 대한 키를 추출하는 함수입니다.

반품

TSource

시퀀스의 최대 키가 있는 값입니다.

예외

sourcenull입니다.

추출된 source 키가 없거나 IComparable<T> 인터페이스를 구현하지 IComparable 않습니다.

TSource 는 기본 형식이고 소스 시퀀스는 비어 있습니다.

예제

다음 코드 예제에서는 특정 속성을 기반으로 컬렉션에서 최대값을 찾는 방법을 MaxBy 보여 줍니다.

(string Name, decimal Salary, int Age)[] employees =
{
    ("Mahmoud", 1000m, 22),
    ("John", 1200m, 28),
    ("Sara", 2000m, 32),
    ("Hadi", 1750m, 27),
    ("Lana", 1500m, 24),
    ("Luna", 1850m, 33)
};

// Get the oldest employee in the company.
var oldestEmployee = employees.MaxBy(employee => employee.Age);

Console.WriteLine($"Name: {oldestEmployee.Name}, Age: {oldestEmployee.Age}, Salary: ${oldestEmployee.Salary}");

/*
This code produces the following output:

Name: Luna, Age: 33, Salary: $1850
*/
</형식>

설명

원본 시퀀스가 비어 있는 경우 원본 유형에 따라 두 가지 가능한 결과가 발생할 수 있습니다. nullable 형식인 경우 TSource 이 메서드는 .를 반환합니다 null. 기본 형식과 같이 null을 허용하지 않는 구조체인 경우 TSource throw InvalidOperationException 됩니다.

소스 시퀀스에 값만 포함된 경우 이 메서드는 반환합니다nullnull.

<format type="text/markdown">

적용 대상