ソースコード
using System; using System.Collections.Generic; using System.Linq; public static class IEnumerableExtensions { public static TSource MaxBy<TSource, TResult>( this IEnumerable<TSource> source, Func<TSource, TResult> selector ) { var value = source.Max( selector ); return source.First( c => selector( c ).Equals( value ) ); } }