6 Stimmen

Problem beim Vergleich von Elementen bei der Implementierung von IComparable

Ich arbeite an einer Erweiterung Methode, wo es findet die min Element durch bestimmte Selektor. Unten der Code

    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;

    }

Es gibt einen Fehler Error Operator '<' cannot be applied to operands of type 'K' and 'K' . Aber ich habe die generische Bedingung K sollte sein Struct and IComparable . Ich glaube, dass alle numerischen Datentypen damit zufrieden sein können.

Wie kommt es dann, dass dies eine ungültige Operation ist?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X