Я работаю над методом расширения, в котором он находит элемент min с помощью определенного селектора . Ниже кода
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;
}
возникает ошибка Ошибка Оператор «<» не может применяться к операндам типа «K» и «K»
. Но я указал, что общее ограничение K должно быть Struct и IComparable
. Я считаю, что все числовые типы данных могут быть удовлетворены этим.
Тогда почему это неверная операция?