多列OrderBy使用LINQ C#

时间:2017-08-04 11:35:06

标签: c# linq sorting

我有一个集合,模式和值如下表所示

架构:int(2)

char(2)

我需要根据以下标准进行排序

  1. HasMedicalInsurance
  2. HasLifeInsurance
  3. HasBikeInsurance
  4. 谁都有医疗保险,他们应该首先来到人寿保险和自行车保险。

    注意:上述收藏有个人记录,每个人都应该 只有一个保险,可能是医疗/生活/自行车。

1 个答案:

答案 0 :(得分:1)

据我了解你的问题,你根本不想分组,而是想要按多个标准排序。

List<Person> people; // initialize your data

var sorted = people.OrderByDescending(x => x.HasMedicalInsurance)
    .ThenByDescending(x => x.HasLifeInsurance)
    .ThenByDescending(x => x.HasBikeInsurance)
    .ToList();

注意:通过使用...Descending变体,true值会在false值之前排序。