Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#basics、读取文件、通过写行输入、保存排序、控制台应用程序_C# - Fatal编程技术网

C#basics、读取文件、通过写行输入、保存排序、控制台应用程序

C#basics、读取文件、通过写行输入、保存排序、控制台应用程序,c#,C#,我才学了几个星期,现在还处于起步阶段。为了练习,我编写了一个小程序,提示输入分数和名称,然后进行比较并给出反馈。请看这里: static int highscore = 1000; static void Main(string[] args) { /////////////////////////////////// Console.WriteLine("\n\nDer aktuelle Highsco

我才学了几个星期,现在还处于起步阶段。为了练习,我编写了一个小程序,提示输入分数和名称,然后进行比较并给出反馈。请看这里:

static int highscore = 1000;
        static void Main(string[] args)
        {

            ///////////////////////////////////
            Console.WriteLine("\n\nDer aktuelle Highscor ist:   {0} \n\n ", highscore);


            Console.Write("\nBitte gib Deinen Score ein:\t");
            int score = Convert.ToInt32(Console.ReadLine());

            Console.Write("\nBitte gib Deinen Namen  ein:\t");
            string spielerName = Console.ReadLine();


            string highscoreSpielerName;


            if (score <= highscore)
            {
                Console.WriteLine("\n\nPech gehabt {0}, Du hast keinen neuen Highscore.", spielerName);

            }

            else if (score > highscore)
            {
                int newHigsore = highscore + score - 1000;
                int divHighscore = score - 1000;
                
                Console.Clear();
                Console.WriteLine("\n\nHerzlichen Glückwunsch, der neue Highscore ist {0} Punkte !! ", newHigsore);
                Console.WriteLine("\n\nDer alte Highscore war {0} Pnkte und wurde um {1} Punkte übertroffen.", highscore, divHighscore);
                Console.WriteLine("\n\n{0} hät den neuen Highscore mit {1} Punkten !", spielerName, newHigsore);
            }

            Console.ReadKey();
        }
           
    }

您可能希望使用对象。 创建对象后,可以使用列表工具。 这里包含了Newtonsoft.Json(用于序列化文件)的精华 还有Linq的使用

    public class Scores
    {
        public string Name { get; set; }
        public int Score { get; set; }
    }
类程序
{
静态void Main(字符串[]参数)
{
var ScoreList=新列表();
添加(新分数(){Name=“Alpha”,分数=98324});
添加(新分数(){Name=“Bravo”,分数=88099});
添加(新分数(){Name=“Charlie”,分数=12012});
添加(新分数(){Name=“Delta”,分数=76590});
添加(新分数(){Name=“Echo”,分数=87199});
添加(新分数(){Name=“Foxtrot”,分数=99832});
添加(新分数(){Name=“Golf”,分数=20204});
添加(新分数(){Name=“Hotel”,分数=37209});
添加(新分数(){Name=“India”,分数=08732});
添加(新分数(){Name=“Juliett”,分数=78782});
添加(新分数(){Name=“Kilo”,分数=99120});
添加(新分数(){Name=“Lima”,分数=76555});
var saveScores=JsonConvert.serialized对象(scoreslist);
writealText(@“C:\work\Scores.json”,saveScores);
//读取现有文件
var fileRead=File.ReadAllText(@“C:\work\Scores.json”);
List existingScores=JsonConvert.DeserializeObject(fileRead);
var highScores=existingScores.OrderByDescending(o=>o.scores).Take(10.ToList();
}
}

步骤1:创建
类分数{public string Name{get;set;}..}
并使用它进行排序和处理。使读写成为一个独立的部分。排序的例子可以在将列列表写入CSV的文档中找到-步骤0:研究这些主题,也许可以从一些关于S文档的非常好的文章开始。@Henk Holterman谢谢,我已经这样做了。首先,我遇到的问题是如何将通过Console.Readline检索到的输入保存到文件中?谢谢您的回答。反序列化对象和序列化对象带来“错误CS1061”对象不包含“序列化对象”的定义。使用System.Text.Json;我添加了。我能做什么?
    public class Scores
    {
        public string Name { get; set; }
        public int Score { get; set; }
    }
   class Program
    {
        static void Main(string[] args)
        {
            var ScoreList = new List<Scores>();
            ScoreList.Add(new Scores() { Name = "Alpha", Score = 98324 });
            ScoreList.Add(new Scores() { Name = "Bravo", Score = 88099 });
            ScoreList.Add(new Scores() { Name = "Charlie", Score = 12012 });
            ScoreList.Add(new Scores() { Name = "Delta", Score = 76590 });
            ScoreList.Add(new Scores() { Name = "Echo", Score = 87199 });
            ScoreList.Add(new Scores() { Name = "Foxtrot", Score = 99832 });
            ScoreList.Add(new Scores() { Name = "Golf", Score = 20204 });
            ScoreList.Add(new Scores() { Name = "Hotel", Score = 37209 });
            ScoreList.Add(new Scores() { Name = "India", Score = 08732 });
            ScoreList.Add(new Scores() { Name = "Juliett", Score = 78782 });
            ScoreList.Add(new Scores() { Name = "Kilo", Score = 99120 });
            ScoreList.Add(new Scores() { Name = "Lima", Score = 76555 });
            var saveScores = JsonConvert.SerializeObject(ScoreList);
            File.WriteAllText(@"C:\work\Scores.json", saveScores);
            // read existin file
            var fileRead= File.ReadAllText(@"C:\work\Scores.json");

            List<Scores> existingScores = JsonConvert.DeserializeObject<List<Scores>>(fileRead);

            var highScores = existingScores.OrderByDescending(o => o.Score).Take(10).ToList();

        }
    }