首页 文章

使用JSON对txt文件进行排序

提问于
浏览
0

我正在制作游戏的记分牌 . 我正在开发但没有json的经验 . 到目前为止,我已经做到了这一点,它将一个带有分数的名称添加到纯文本文件中,并在游戏中显示它 . 现在我想对它进行排序,以便得分最低的名称出现在顶部 .

这是我的代码:

[WebMethod]
public static void Score(String gamescore, string loginname)
{
    List<Highscore> Myhighscores = new List<Highscore>();

    string hs = File.ReadAllText(@"c:\temp\hs.txt");
    Myhighscores = JsonConvert.DeserializeObject<List<Highscore>>(hs);
    Myhighscores.Add(new Highscore { Score = gamescore, Name = loginname });

    string Jstr = JsonConvert.SerializeObject(Myhighscores);
    File.WriteAllText(@"c:\temp\hs.txt", Jstr);         
}

public void displayScore()
{
    using (StreamReader r = new StreamReader(@"c:\temp\hs.txt"))
    {
        string json = r.ReadToEnd();
        List<Highscore> items = JsonConvert.DeserializeObject<List<Highscore>>(json);

        foreach (Highscore score in items)
        {
            lblHighscore.Text += $"{score.Name} > {score.Score}  {"Turns"}
"; } } }

我尝试了很多东西,但似乎没有任何工作 . 有谁知道我怎么能做到这一点?

p.s Highscore包含2个名为 NameScore 的公共字符串 .

2 回答

  • 0

    我需要做的就是将 gamescore 更改为 int 并添加以下代码:

    List<Highscore> SortedList = items.OrderBy(o => o.Score).ToList();
    
  • 0

    您需要先对对象进行排序,然后再将其写回文件中 .

    Myhighscores.Sort((x, y) => string.Compare(x.Score, y.Score));
    

相关问题