Linq查询排序集合

时间:2013-06-27 09:54:42

标签: c# linq

我自定义了一个集合LoanOptionsProgramVersionList,其中包含bolean属性Configured,字符串DescriptionCode。当从集合中插入和删除时,我希望对集合中的集合进行排序低于订单。因此,插入到配置数据库的一条记录变为yes。删除时Configured变为“否”。所以它通知财产。

  1. 按配置排序
  2. 然后按说明
  3. 然后按代码
  4. 我在插入后尝试了以下代码。

    IOrderedEnumerable<ProgramVersionRecord> orderedList =    
         LoanOptionsProgramVersionList
             .OrderByDescending(p => p.ProgramVersionConfigured == true);
    

    还在删除代码

    下面
     IOrderedEnumerable<ProgramVersionRecord> orderedList =
          LoanOptionsProgramVersionList.OrderBy(p => p.Description);
    

    任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:4)

使用ThenBy

IOrderedEnumerable<ProgramVersionRecord> orderedList = LoanOptionsProgramVersionList
    .OrderByDescending(p => p.ProgramVersionConfigured) // configured has priority
    .ThenBy(p => p.Description)
    .ThenBy(p => p.Code);

答案 1 :(得分:1)

ProgramVersionConfigured属性排序时,请使用此属性而不是与布尔值进行比较的结果。还可以使用ThenBy添加另一个排序:

 LoanOptionsProgramVersionList.OrderByDescending(p => p.ProgramVersionConfigured)
                              .ThenBy(p => p.Description)
                              .ThenBy(p => p.Code)