Как отсортировать List<List<UInt32>> по номеру List<UInt32>[0] ASC/DESC в C#?
Вопрос
Как отсортировать это в порядке ASC?
я получил List<List<UInt32>>
полно записей о List<UInt32>
и я хочу, чтобы эти записи были отсортированы по первому столбцу в каждой записи - столбец имеет номер UInt32.
Так:
У меня есть список:
new List<UInt32>: 32,1,1,1,1,1
new List<UInt32>: 22,2,2,2,2,2
new List<UInt32>: 32,1,1,1,1,1
new List<UInt32>: 1,1,1,1,1
который следует отсортировать по:
List<UInt32>: 1,1,1,1,1
List<UInt32>: 22,2,2,2,2,2
new List<UInt32>: 32,1,1,1,1,1
new List<UInt32>: 32,1,1,1,1,1
-> Имеет значение только первое число!другие не важны для сортировки.Я ищу ASC, но оба были бы фантастическими, поэтому, когда я думаю, что алгоритм следует изменить, я поищу его :)
Спасибо за ваше усилие помочь!
@Самуэль, спасибо, попробую реализовать, когда попробую изменить тип :)
Решение
Почти дубликат:
Как отсортировать List<List<string>> по количеству полей List<string>?
Что-то вроде:
var sorted = parent.OrderBy( l => l[0] );
Или:
parent.Sort( (a,b) => a[0].CompareTo( b[0] ) )
Другие советы
Хотя ответ Джона работает, я бы предложил использовать First()
вместо доступа к элементу 0 в списке.Таким образом, это работает для любого IEnumerable<T>
не просто IList<T>
.
var sorted = list.OrderBy(subList => subList.First());