Проблема при сравнении элементов, реализующих IComparable

Я работаю над методом расширения, в котором он находит элемент 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 .

6
задан bertie 24 February 2011 в 07:19
поделиться