2011-10-08 62 views
0

我正在實現一個類,在LINQ庫的樣式中有一個自定義IComparer的重載。 (例如OrderBy:OrderBy<TSource, TKey>(IEnumerable<TSource>, Func<TSource, TKey>)OrderBy<TSource, TKey>(IEnumerable<TSource>, Func<TSource, TKey>, IComparer<TKey>))。如何實現LINQ型IComparer <T>過載,其中T實現IComparable <T>?

我想在1參數過載方面實現2參數重載。像下面這樣:

T Method<T>(IEnumerable<T> collection, IComparer<T> comparer) 
{ 
    // Do something that returns a T 
} 

T Method<T>(IEnumerable<T> collection) where T: IComparable<T> 
{ 
    IComparer<T> comparer = /*what goes here?*/; 
    return Method(collection, comparer); 
} 

在這方面,這個問題歸結爲問,我怎麼取得的IComparer的實例爲實現IComparable的類型?

回答