我正在使用实体框架并生成一个简单的返回对象列表,例如
RetVal.Add(new Leaderboard() {
Category = CategoryID,
User = u.FirstName,
Score = GetCategoryScoreForUser(u.Username,(int)CategoryID).ToString() });
RetVal
是排行榜列表。
每个Leaderboard对象都有一个名为Score的属性,我想要做的是重新命令RetVal,使它现在包含列表,但是按照得分的降序排列。
我尝试了以下内容:
RetVal.Sort(x => x.Score);
和
RetVal.OrderBy(x=>x.Score);
但没有任何改变。
有人可以帮帮我吗?答案 0 :(得分:3)
如果您将分数存储为数字字符串,请尝试以下操作:
RetVal.OrderByDescending(x=>int.Parse(x.Score));
如果您将其修改为int
,请尝试以下操作:
RetVal.OrderByDescending(x=>x.Score);
答案 1 :(得分:1)
创建新列表:
var newList = RetVal.OrderBy(x => x.Score).ToList();
当您在列表上进行迭代时,您不必这样做,只需使用
foreach(var leaderboard in RetVal.OrderBy(x => x.Score)) {
Console.WriteLine(leaderboard);
}
答案 2 :(得分:0)
如果您想编辑原始数组,请执行以下操作:
RetVal=RetVal.Sort(x => x.Score);
或
RetVal=RetVal.OrderBy(x=>x.Score);