我正在為我的計(jì)算課程做一個(gè)測(cè)驗(yàn)應(yīng)用程序,我正在結(jié)束屏幕上工作,在結(jié)束屏幕上我有一個(gè)名為 savescore() 的方法savescore() 用于將用戶(hù)的用戶(hù)名、分?jǐn)?shù)和時(shí)間保存到文本文件中。savescore() 方法完美地將用戶(hù)詳細(xì)信息保存到名為 scores 的文本文件中,但我的問(wèn)題是,當(dāng)我將用戶(hù)詳細(xì)信息寫(xiě)入文本文件時(shí),我希望將數(shù)據(jù)按分?jǐn)?shù)降序?qū)懭敕謹(jǐn)?shù)文本文件中,我不知道該怎么做。 private void SaveScore() { string file = @"..\..\textfiles\scores.txt"; try { // // Create file if not exists // if (!File.Exists(file)) { File.Create(file).Dispose(); } // // Create DataTable // DataColumn nameColumn = new DataColumn("name", typeof(String)); DataColumn scoreColumn = new DataColumn("score", typeof(int)); DataColumn timeColumn = new DataColumn("time", typeof(long)); DataTable scores = new DataTable(); scores.Columns.Add(nameColumn); scores.Columns.Add(scoreColumn); scores.Columns.Add(timeColumn); // // Read CSV and populate DataTable // using (StreamReader streamReader = new StreamReader(file)) { streamReader.ReadLine(); while (!streamReader.EndOfStream) { String[] row = streamReader.ReadLine().Split(','); scores.Rows.Add(row); } } Boolean scoreFound = false; // // If user exists and new score is higher, update // foreach (DataRow score in scores.Rows) { if ((String)score["name"] == player.Name) { if ((int)score["score"] < player.Score) { score["score"] = player.Score; score["time"] = elapsedtime; } scoreFound = true; break; } }所以我有人可以編輯我當(dāng)前的代碼,以根據(jù)分?jǐn)?shù)的降序保存用戶(hù)詳細(xì)信息,這將是非常棒的,在此先感謝。
1 回答

蝴蝶刀刀
TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超8個(gè)贊
您可以使用DataTable.Select 方法來(lái)實(shí)現(xiàn)。使用 select 方法,您可以過(guò)濾和排序表中的行。下面是foreach使用該方法對(duì)數(shù)據(jù)進(jìn)行排序的已更改語(yǔ)句。
foreach (DataRow score in scores.Select(null, "score DESC"))
{
stringBuilder.AppendLine(score["name"] + "," + score["score"] + "," + score["time"]);
}
- 1 回答
- 0 關(guān)注
- 75 瀏覽
添加回答
舉報(bào)
0/150
提交
取消