Я хочу заказать список объектов в C# по многим полям, а не по одному. Например, давайте предположим, что у меня есть класс с именем X с двумя атрибутами, А и В, и у меня есть следующие объекты, в таком порядке:Заказать список (C#) по многим полям?
object1 => A = «а», В = «ч»
object2 => а = "а", В = "с"
object3 => а = "Ъ", В = "х"
object4 => а = "Ъ", В = "б"
и я хочу, чтобы упорядочить список атрибутом первой, и когда они равны, по B элемента, так что порядок будет:
«а» «с»
«а» «ч»
«б», «б»
«б», «х»
Насколько я знаю, метод OrderBy порядок одним параметром.
Вопрос: Как я могу заказать список C# более чем одним полем?
Большое спасибо
Это не заказ для меня? Что мне не хватает? Docs.OrderBy (o => o.AcctNum) .ThenBy (o => o.DocDate); –
Возможно, вы используете более старую .net. Проверьте этот ответ: http://stackoverflow.com/questions/289010/c-sharp-list-sort-by-x-then-y/289040#289040. –
Для потомков: OrderBy не сортирует исходную коллекцию, возвращает IOrderedEnumerable, поэтому вам нужно назначить результаты OrderBy переменной. например customers = customers.OrderBy (c => c.Surname) .ThenBy (c.Forename) .ToList(); –
CptCoathanger