Двусвязный список, сортировка, как сравнивать тип данных Т?

Всем привет! Столкнулся вот с такой проблемой. Делаю обобщенный класс двунаправленного списка. Все методы сделал и решил еще добавить сортировки ascending и descending. Но не тут-то было, студия пишет, что нельзя сравнивать типы данных Т. В плюсах вроде можно было. Это решается вообще?

В С++ duck typing для них.

В C# надо явно указывать ожидаемое, что-то типа class Foo<T> where T : IComparable, или кастовать к этому интерфейсу.