Linq查询以对集合进行排序

本文关键字:排序 集合 查询 Linq | 更新日期: 2023-09-27 18:20:02

我自定义了一个集合LoanOptionsProgramVersionList,它具有bolean属性Configured、字符串DescriptionCode。在从集合中插入和删除时,我希望按以下顺序对集合进行排序。因此,插入到配置的数据库中的一条记录变为"是"。删除后,Configured变为"否"。所以它是Notify属性。

  1. 按配置排序
  2. 然后通过描述
  3. 然后通过代码

插入后,我尝试了以下代码。

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

下面还有删除的代码

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

任何帮助都将不胜感激。

Linq查询以对集合进行排序

使用ThenBy

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

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

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