2

我正在做一个课程作业,其中一部分涉及到我必须在我的游戏中拥有一个有效的记分牌,但是,我需要一种方法来按 score.score 对我的 Score 对象列表进行排序。因为我的 Score 对象包含玩家姓名以及他们达到的级别。

我在编程方面不是很有经验,并且已经做了不到一年,我从搜索中发现的只是人们在谈论 lambda 或 IComparable,这两个我都不知道或如何使用,而 MSDN 没有对我来说似乎不容易理解:(

我在这里拉头发,任何帮助都会很棒!

在伪中,我需要的是:

List<Score> scores;
// Load in scores
scores.Sort(//sort by score.actualScore)

这样我就可以在添加新分数时在正确的位置添加和删除列表。

4

3 回答 3

6
var ordered = scores.OrderBy(x => x.ActualScore).ToList();

或者:

var ordered = scores.OrderByDescending(x => x.ActualScore).ToList();
于 2012-04-08T00:42:40.763 回答
3

最简单的方法是传递一个Comparison委托。对于您的示例,这将是:

scores.Sort((a, b) => a.actualScore - b.actualScore);
于 2012-04-08T00:43:36.400 回答
1

IComparable在你的Score课堂上实施。

请参阅:http: //msdn.microsoft.com/en-us/library/system.icomparable.aspx

于 2012-04-08T00:43:30.020 回答