[英]How to sort a list on a column value
我试图在两种情况下在LINQ中对List<T>
进行排序 ,
MasterBenefitCode
属性值为"QLBEN"
。 它应该排在最前面 。 Name
。 我正在尝试以下代码,
employerBenefits
.OrderBy(x => x.MasterBenefitCode == "QLBEN")
.ThenBy(x => x.Name)
.ToList();
请让我知道我在这里想念什么。 是否无法在OrderBy()
添加比较运算符 。
在比较Boolean
我们有false < true
(这很自然: 0 < 1
)。 因此,我们必须按降序排序( true
位于顶部):
var result = employerBenefits
.OrderByDescending(x => x.MasterBenefitCode == "QLBEN")
.ThenBy(x => x.Name)
.ToList();
编辑:与ThenBy
相同,应将其.ThenByDescending
为.ThenByDescending
(请参见下面的评论):
var result = employerBenefits
.OrderByDescending(x => x.MasterBenefitCode == "QLBEN")
.ThenByDescending(x => x.MasterBenefitCode == "QLBEF")
.ThenBy(x => x.Name)
.ToList();
另一个选项(包括您对辅助MasterBenefitCode的评论),
var result = employerBenefits
.OrderByDescending(x => x.MasterBenefitCode == "QLBEN" ? 3:x.MasterBenefitCode == "QLBEF"?2:1)
.ThenBy(x => x.Name)
.ToList();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.