2016-12-20 6 views
1

У меня есть сценарий, в котором я хочу сортировать и ранжировать список записей на основе разных свойств. Каждый объект имеет Общее свойство а также список целочисленного значения под названием результаты, Модель походитРанжировать объекты на основе нескольких полей

public class Routine 
{ 
    public string Title { get; set; } 

    public int Total { get; set; } 

    public List<int> Scores { get; set; } 
} 

Я хочу, чтобы ранжировать записи,

  • Во-первых: на основе Итоговое имущество
  • Второе: на основании первого значения в Результаты
  • Тогда: На основании второго значения в Scores собственности
  • И так далее

К примеру, я считаю эти три записи.

enter image description here

Спасибо за любую помощь и идеи.

+0

Нет, для меня ThenBy нужно сортировать на основе нескольких значений, результаты свойство – ali

+1

Вы можете добавить 'ThenBy'-пункты столько, сколько необходимо. –

+0

вы также можете предоставить код вашей модели в случае, если данные ответы не нужны вам? – demo

ответ

2

С помощью linq вы можете использовать Orderby (Descending), а затем привязать любое количество предложений ThenBy (Descending) вместе.

 var soterdList= initialList.OrderByDescending(r => r.Total) 
      .ThenByDescending(r => r.Scores.FirstOrDefault()) 
      .ThenByDescending(r => r.Scores.Skip(1).FirstOrDefault()).ToList(); 
+0

Так как второе свойство представляет собой список целых чисел, то ThenBy кажется не работает для меня – ali

+0

@ali Я обновил код до костюм вашей модели. – Daniel

1

Вы можете использовать OrderBy и ThenBy.

var ordered = items.OrderBy(x => x.TotalProperty).ThenBy(x => x.S1).ThenBy(x => x.S2); 

Вы также можете использовать OrderByDescending, если хотите убывающий порядок.

+0

Так как второе свойство представляет собой список целых чисел, то ThenBy кажется не работает для меня – ali

+0

Что значит список целых чисел? В вопросе у вас есть 1 целое число в строке. Пожалуйста, уточните, что вы имеете в виду. – CodingYoshi

+0

Второе свойство - это результаты, которые являются списком , я редактирую вопрос и добавляю свою модель также – ali

Смежные вопросы