2015-02-08 59 views
-2

我在查找返回DateTimeEnumerable.Max方法,但似乎此方法不存在。獲取DateTime類型的最大方法

我嘗試使用反射來找到它,但沒有任何結果返回DateTime

Dim test = GetType(Enumerable).GetMethods(BindingFlags.Public Or BindingFlags.Static). 
    Where(Function(m) m.Name = "Max") 

有沒有這樣的方法?

回答

1

Enumerable具有用於DateTime型沒有指定Max方法,但它具有通用Max(IEnumerable<TSource>)方法,其能夠處理的實現IComparable<T>IComparable接口,包括DateTime類的對象。

所以,你可以用這個方法:

class Program 
{ 
    delegate DateTime MaxDelegate(IEnumerable<DateTime> values); 

    static void Main(string[] args) 
    { 
     MaxDelegate d = Enumerable.Max<DateTime>; 
     var values = new DateTime[] { DateTime.MinValue, DateTime.Now, DateTime.MaxValue }; 
     var result = d(values); 
     Console.WriteLine(result); 
    } 
}