C# - 只用Whileloop读取第一个字符

Arv*_*afi 1 c# text list streamreader while-loop

我一直在寻找大约一个小时,根本无法找到任何解决方案.我希望我的.txt文件中的每一行都添加到我的列表中,只要它以相同的数字开头即可.问题在于"line.Substring(0,1)",我不知道如何解决它.也许你明白我想要实现的目标.

        using (StreamReader file = new StreamReader(schedulePathDays))
        {
            string line;
            while ((line.Substring(0, 1) = file.ReadLine()) == thisDay.ToString())
            {
                exercisesRow.Add(line);
            }
        }
Run Code Online (Sandbox Code Playgroud)

cuo*_*gle 5

您可以使用ReadLines然后使用LINQ过滤:

var result = File.ReadLines("yourPath")
                 .Where(line => line.StartsWith("1"));
Run Code Online (Sandbox Code Playgroud)

ReadLines延迟执行,因此它可以在大文本文件中工作.

编辑:要使用您的代码进行映射,请使用以下代码替换代码:

exercisesRow = File.ReadLines(schedulePathDays)
                   .Where(line => line.StartsWith(thisDay.ToString()))
                   .ToList();
Run Code Online (Sandbox Code Playgroud)