【发布时间】:2016-10-03 20:40:06
【问题描述】:
我正在研究一种扩展方法,它通过特定选择器找到最小项目。代码下方
public static T MinBy<T, K>(this IEnumerable<T> src, Func<T, K> selector) where K : struct, IComparable, IConvertible
{
var min = default(K);
T minItem = default(T);
foreach (var item in src)
{
var current = selector(item);
if (current < min)
{
min = current;
minItem = item;
}
}
return minItem;
}
它给出错误Error Operator '<' cannot be applied to operands of type 'K' and 'K'。但我已指定通用约束 K 应为Struct and IComparable。我相信所有的数值数据类型都可以满足于此。
那怎么会是无效操作呢?
【问题讨论】:
标签: c# generics icomparable