我正忙于编写自己的集合类型,需要有一个函数 Max 来返回集合中的值,其中值属性之一是最大值或某些条件成立。
所以我试图在一个底层的.net集合上调用 Max(Func<...) ,但我似乎无法让它工作:
public TValue MaxValue(Func<TValue,TValue> func)
{
return this.valueSet.Max<TValue>(func);
}
但我收到 2 个错误:
Argument 2: cannot convert from 'System.Func<TValue,TValue>' to System.Func<TValue,int>'
和
'System.Collections.Generic.SortedSet<TValue>' does not contain a definition for 'Max'
and the best extension method overload 'System.Linq.Enumerable.Max<TSource>(System.Collections.Generic.IEnumerable<TSource>,
System.Func<TSource,int>)' has some invalid arguments
我似乎无法弄清楚我应该在这里做什么......