Как я могу выполнить сортировку по двум различным критериям?Сортировка по двум критериям: по возрастанию, int по возрастанию
К примеру, у меня есть человек, такие объекты, как:
Person
со свойствами FirstName
(строка), LastName
и Rank
(целое).
Пример данных, например, так:
Xavier Smith 1
Alexander Smith 2
Alexander Smith 1
Bob Hawke 2
Он должен сортировать по FirstName по алфавиту, затем ранга, например, в результате чего:
Alexander Smith 1
Alexander Smith 2
Bob Hawke 2
Xavier Smith 1
До сих пор, я попытался следующие, но это не работает должным образом:
peopleList
является List<Person>
peopleList.Sort(new Comparison<Person>((x,y) => x.Rank.CompareTo(y.Rank)));
peopleList.Sort(new Comparison<Person>((x, y) => string.Compare(x.Name, y.Name)));
Благодаря
редактировать: к не меняйте мой код слишком много, я действительно хочу сохранить список, если я изменил приведенные выше строки на:
peopleList.OrderBy(person => person.FirstName).ThenBy(person => person.Rank).ToList();
Дал бы тот же самый список, который был бы правильно отсортирован, правильно?
Я действительно должен прочитать больше о LINQ, кажется, что моя жизнь становится намного проще! – baron
@baron см. Мое редактирование, я прокомментировал ваш вопрос в недавнем редактировании. –
@baron Я добавил компаратор, который можно использовать с 'Sort()'. –