我添加了一個函數來跟蹤我製作的小遊戲的分數。 我想從包含分數的文件中獲得前5個分數(包括該分數的名稱)。從列表中獲得排名前5的分數
保存的分數的格式爲:
[名] - [評分]
的得分和名稱都存儲在2只列出,這是我分析是這樣的:
string scores = File.ReadAllText(Environment.GetEnvironmentVariable("TEMP") + "/scores");
string[] splitscores = scores.Split('\n');
foreach (string entry in splitscores)
{
string replace = entry.Replace("[", "").Replace("]", "");
string[] splitentry = replace.Split('-');
if (splitentry.Count() > 1)
{
scorenames.Add(splitentry[0]);
scorelist.Add(Int32.Parse(splitentry[1]));
}
}
然後,我通過檢索#1播放器:
int indexMax
= !scorelist.Any() ? -1 :
scorelist
.Select((value, index) => new { Value = value, Index = index })
.Aggregate((a, b) => (a.Value > b.Value) ? a : b)
.Index;
lblhighscore1.Text = "#1: " + scorelist[indexMax] + " by " + scorenames[indexMax];
如何設置剩餘的4名選手假設這是我的得分列表:
[broodplank]-[12240]
[flo]-[10944]
[bill]-[11456]
[tony]-[9900]
[benji]-[7562]
我想我可以做一個降序排序比分名單,但將不包括在該指標的變化用戶名列表中,最好的方法是什麼?
而不是'ReadAllText' /'.Split',你可以只用'ReadAllLines'開始。 – crashmstr