如何按存储在结构列表中的整数对列表进行排序

我需要为我写的游戏排序一个高分文件。

每个高分都有一个名称,分数和日期变量。 我将每个存储在List中。

这是保存每个高分数据的结构。

struct Highscore { public string Name; public int Score; public string Date; public string DataAsString() { return Name + "," + Score.ToString() + "," + Date; } } 

那么我如何按列表中每个对象的得分变量对高分榜的类型进行排序?

任何帮助表示赞赏:D

我不知道为什么每个人都在提出需要额外内存的基于LINQ的解决方案(特别是因为Highscore是一种值类型),如果想要重用结果,则调用ToList()。 最简单的解决方案是使用List的内置Sort方法

 list.Sort((s1, s2) => s1.Score.CompareTo(s2.Score)); 

这将对列表进行排序。

 var sortedList = yourList.OrderBy(x => x.Score); 

或使用OrderByDescending以相反的方式排序

使用LINQ:

 myScores.OrderBy(s => s.Score); 

这是了解不同LINQ运算符的绝佳资源。

 List mylist = GetHighScores(); var sorted = mylist.OrderBy(h=>h.Score); 

这将首先对列表进行排序:

 IEnumerable scores = GetSomeScores().OrderByDescending(hs => hs.Score);