我一直在寻找大约一个小时,根本无法找到任何解决方案。我希望我的.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);
}
}
答案 0 :(得分: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();
答案 1 :(得分:0)
你的语法没有意义。您可能需要以下内容:
file.ReadLine().Substring(0,1)==thisDay.ToSTring()
我认为这是你想写的,尽管Cuong Le的回答可能更好(除了需要参数化)。
答案 2 :(得分:0)
您的Substring(0,1)
位置错误。它应该在line
被分配后出现。
//Altnerately: (...).Substring(0,1) instead of (...)[0]
while((line = file.ReadLine())[0] == thisDay.ToString()[0]){
//code
}
要求尝试分配Substring方法的结果是没有意义的。