ソースコード
using System;
using System.Collections.Generic;
using System.Linq;
public static class IEnumerableExtensions
{
<summary>
</summary>
public static TSource FindMin<TSource, TResult>
(
this IEnumerable<TSource> self,
Func<TSource, TResult> selector
)
{
return self.First( c => selector( c ).Equals( self.Min( selector ) ) );
}
<summary>
</summary>
public static TSource FindMax<TSource, TResult>
(
this IEnumerable<TSource> self,
Func<TSource, TResult> selector
)
{
return self.First( c => selector( c ).Equals( self.Max( selector ) ) );
}
}
使い方
class Character
{
public int Number;
public string Name;
public Character( int number, string name )
{
Number = number;
Name = name;
}
}
void Awake()
{
var list = new []
{
new Character( 1, "フシギダネ" ),
new Character( 2, "フシギソウ" ),
new Character( 3, "フシギバナ" ),
};
Debug.Log( list.FindMin( c => c.Number ).Name );
Debug.Log( list.FindMax( c => c.Number ).Name );
}
関連記事