Предполагая, что список кортежей имеет тип IEnumerable<Tuple<int, int>>
(последовательность кортежей, представленных с использованием класса Tuple<..>
из .NET 4.0), вы можете написать следующее, используя методы расширения LINQ:
var result = myList.OrderBy(k => k.Item2);
В коде k.Item2
возвращает второй компонент кортежа - в C # это свойство (поскольку доступ к элементу по индексу вообще не является безопасным для типов). В противном случае, я думаю, что код довольно лаконичен (также благодаря хорошей записи лямбда-функции).
Используя синтаксис запроса LINQ, вы могли бы написать его так (хотя первая версия ИМХО более читабельна и определенно более краткая):
var result = from k in myList orderby k.Item2 select k;