Вам просто нужно предоставить IComparer<Tuple<int, int>>
или Comparison<Tuple<int, int>>
для метода List<T>.Sort
.Последнее, вероятно, проще указать inline:
list.Sort((x, y) => y.Item1.CompareTo(x.Item1));
Если вы хотите упорядочить по первому, а затем по второму значению, это становится немного сложнее, но все же выполнимо.Например:
list.Sort((x, y) => {
int result = y.Item1.CompareTo(x.Item1);
return result == 0 ? y.Item2.CompareTo(x.Item2) : result;
});
РЕДАКТИРОВАТЬ: я изменил выше, чтобы отсортировать в порядке убывания.Обратите внимание, что правильный способ сделать это - изменить порядок сравнения (с y
до x
вместо x
до y
).Вы должны не просто отменить возвращаемое значение CompareTo
- это не удастся, когда CompareTo
вернет int.MinValue
.