У меня есть список, в котором я нуждаюсь отсортированный по двум полям. Я попытался использовать OrderBy в LINQ, но который только позволяет мне указывать одно поле. Я ищу список, который будет отсортирован по первому полю и затем если существуют какие-либо дубликаты в первом поле к виду вторым полем.
Например, я хочу, чтобы результаты были похожи на это (отсортированный по фамилии затем имя).
Я видел, что можно использовать SQL как синтаксис для выполнения этого, но я ищу способ сделать это с методом OrderBy.
IList listOfPeople = /*The list is filled somehow.*/
IEnumerable sortedListOfPeople = listOfPeople.OrderBy(aPerson => aPerson.LastName, aPerson.FirstName); //This doesn't work.
Вам необходимо использовать ThenBy
:
listOfPeople.OrderBy(person => person.LastName)
.ThenBy(person => person.FirstName)
Ваши последующие поля должны быть упорядочены с помощью метода ThenBy()
var sortedListOfPeople = listOfPeople.OrderBy(aPerson => aPerson.LastName).ThenBy(a => aPerson.FirstName);