В CLI десятичный тип не является нативным типом, как Int32, String и другие. Я предполагаю, что C # использует сравнение за кулисами для реализации операторов сравнения.
Кроме того, вы можете передать Compare в качестве параметра в процедуру сортировки, не создавая делегата, уменьшая уровни вложенности методов внутри сортировки.
Это пара вещей с моей головы.