相关疑难解决方法(0)

比较实现IComparable的项目的问题

我正在研究一种扩展方法,它通过特定的选择器找到最小项目.代码下方

    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;

    }
Run Code Online (Sandbox Code Playgroud)

它给出了错误Error Operator '<' cannot be applied to operands of type 'K' and 'K'.但我已经指定了通用约束K应该是Struct and IComparable.我相信所有数字数据类型都可以满足于此.

那为什么这是一个无效的操作.

c# generics icomparable

5
推荐指数
2
解决办法
2768
查看次数

标签 统计

c# ×1

generics ×1

icomparable ×1