场景:我有一个部门列表,需要先按部门排序,然后按顺序排序。
示例:
第1区
第2区北
第2区南
一切
从
这里
在
有序
问题:有没有办法用LINQ或其他方法以这种方式排序对象列表?该对象由Sector_ID和Description(名称)组成。
答案 0 :(得分:4)
假设这是对象的LINQ,那很简单:
// False comes before True, IIRC, so we want to a projection such that
// everything which starts with Sector maps to False, and everything else
// maps to True.
var query = list.OrderBy(x => !x.Description.StartsWith("Sector"))
.ThenBy(x => x.Description);
请注意,我可能误解了这个问题。你可能只想要这样的东西:
var query = list.OrderBy(x => x.SectorId)
.ThenBy(x => x.Description);
您的示例数据只包含一列,但之后您已经谈过两个......如果您可以在问题中提供更多详细信息,那么为您提供有用的答案会更容易。
答案 1 :(得分:1)
您应该能够通过为对象的Sort方法提供比较来对列表进行排序,该方法首先比较Sector_ID然后比较描述。