1

我一直在寻找大约一个小时,根本找不到任何解决方案。我希望将 .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);
            }
        }
4

3 回答 3

5

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

var result = File.ReadLines("yourPath")
                 .Where(line => line.StartsWith("1"));

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

编辑:要映射到您的代码,请将您的代码替换为以下代码:

exercisesRow = File.ReadLines(schedulePathDays)
                   .Where(line => line.StartsWith(thisDay.ToString()))
                   .ToList();
于 2013-06-10T10:00:57.607 回答
0

Substring(0,1)来错地方了。它应该在line分配之后。

//Altnerately: (...).Substring(0,1) instead of (...)[0]
while((line = file.ReadLine())[0] == thisDay.ToString()[0]){
    //code
}

要求尝试分配 Substring 方法的结果是没有意义的。

于 2013-06-10T10:07:56.287 回答
0

你的语法没有意义。你可能想要这样的东西:

file.ReadLine().Substring(0,1)==thisDay.ToSTring()

我认为这是您想写的,尽管 Cuong Le 的答案可能要好得多(除了需要参数化)。

于 2013-06-10T10:01:13.923 回答