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的类型?

回答