0

我正在尝试读取一个文本文件,只读取每五个单词,然后换行,感谢我之前问题的反馈,我的代码现在看起来像这样

               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]                   

有谁知道如何解决这一问题 ?

4

2 回答 2

0

您必须遍历查询结果,为结果中的每个项目执行命令,如下所示:

foreach(var item in File.ReadAllLines(ofd.FileName).Select(x => x.Split(',')[4]));
{
    objSqlCommands.sqlCommandInsertorUpdate2("INSERT",  item);
}

顺便说一句,由于某种原因,您正在使用File.ReadAllText(),它返回所有文件内容的字符串。最有可能的是,您需要使用File.ReadAllLines(),它将为文件中的每一行返回字符串。

于 2013-08-06T11:07:30.233 回答
0

正如德米特里所说,它应该是

List<String> words=File.ReadAllLines(path)
                       .Select(x=>if(Regex.Split(x,"\s+").Length>=5)Regex.Split(x,"\s+")[4])
                       .ToList();
于 2013-08-06T11:19:43.397 回答