我正在尝试阅读一个文本文件,只取每五个字然后转到一个新行,感谢我之前的问题的反馈,我的代码现在看起来像这样
string fileText = File.ReadAllText(ofd.FileName).Replace(Environment.NewLine, ",");
string[] lines = new string[]
{
File.ReadAllText(ofd.FileName)
};
var fifthOnEachLine = lines.Select(x => x.Split(',')[4]);
objSqlCommands.sqlCommandInsertorUpdate2("INSERT", fifthOnEachLine);//laClient[0]);
然而,当我运行代码时,我得到的数据如下所示:
System.Linq.Enumerable+WhereSelectArrayIterator`2[System.String,System.String]
有谁知道如何解决这个问题?
答案 0 :(得分:0)
您必须遍历查询结果,为结果中的每个项执行命令,如下所示:
foreach(var item in File.ReadAllLines(ofd.FileName).Select(x => x.Split(',')[4]));
{
objSqlCommands.sqlCommandInsertorUpdate2("INSERT", item);
}
BTW ,出于某种原因,您使用的是 File.ReadAllText(),它会返回所有文件内容的字符串。最有可能的是,您需要使用 File.ReadAllLines(),它将为您文件中的每一行返回字符串。
答案 1 :(得分:0)
正如Dmitriy所说,它应该是
List<String> words=File.ReadAllLines(path)
.Select(x=>if(Regex.Split(x,"\s+").Length>=5)Regex.Split(x,"\s+")[4])
.ToList();