如何按列表使用的对象内的元素对列表进行排序?

时间:2012-04-08 00:38:38

标签: c# list sorting

我正在开展一项课程,其中一部分涉及到我必须在游戏中使用工作记分牌,但是,我需要一种方法来通过score.score对Score对象列表进行排序。由于我的Score对象包含玩家名称以及他们达到的等级。

我在编程方面不是很有经验并且已经做了不到一年的时间了,我从搜索中找到的所有人都在谈论lambda或IComparable,这两者我都不知道或者如何使用和MSDN似乎并不容易让我理解:(

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

在伪所有我需要的是:

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

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

3 个答案:

答案 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