我正在开展一项课程,其中一部分涉及到我必须在游戏中使用工作记分牌,但是,我需要一种方法来通过score.score对Score对象列表进行排序。由于我的Score对象包含玩家名称以及他们达到的等级。
我在编程方面不是很有经验并且已经做了不到一年的时间了,我从搜索中找到的所有人都在谈论lambda或IComparable,这两者我都不知道或者如何使用和MSDN似乎并不容易让我理解:(
我把头发拉到这里,任何帮助都会很棒!
在伪所有我需要的是:
List<Score> scores;
// Load in scores
scores.Sort(//sort by score.actualScore)
这样,当添加新分数时,我可以在列表中添加和删除正确的位置。
答案 0 :(得分:6)
var ordered = scores.OrderBy(x => x.ActualScore).ToList();
或者:
var ordered = scores.OrderByDescending(x => x.ActualScore).ToList();
答案 1 :(得分:3)
最简单的方法是将Comparison
delegate传递给它。对于你的例子,那将是:
scores.Sort((a, b) => a.actualScore - b.actualScore);
答案 2 :(得分:1)
在IComparable
课程中实施Score
。
请参阅:http://msdn.microsoft.com/en-us/library/system.icomparable.aspx