我有一个场景,我想根据不同的属性对记录列表进行排序和排名。每个对象都有总属性,还有一个名为得分的整数值列表, 模型就像
public class Routine
{
public string Title { get; set; }
public int Total { get; set; }
public List<int> Scores { get; set; }
}
我想对记录进行排名,
例如,我考虑这三个记录。
感谢您的帮助和想法。
答案 0 :(得分:2)
使用linq,您可以使用Orderby(Descending),然后将任意数量的ThenBy(Descending)子句链接在一起。
var soterdList= initialList.OrderByDescending(r => r.Total)
.ThenByDescending(r => r.Scores.FirstOrDefault())
.ThenByDescending(r => r.Scores.Skip(1).FirstOrDefault()).ToList();
答案 1 :(得分:1)
您可以使用OrderBy
和ThenBy
。
var ordered = items.OrderBy(x => x.TotalProperty).ThenBy(x => x.S1).ThenBy(x => x.S2);
如果您想降序,也可以使用OrderByDescending
。