使用JSON对txt文件进行排序

时间:2017-10-13 12:52:05

标签: c# json

我正在为游戏制作记分牌。我正在开发但没有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"}<br/>";
        }
    }
}

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

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

2 个答案:

答案 0 :(得分:0)

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

$(document).ready(function () {
    $("img").hover(function () {
        $(this).css("border-outset", "10px");
    });
});

答案 1 :(得分:0)

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

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