我正在使用File.ReadAllLines()读取文本文件,但也可以使用File.ReadLines()。读取文件后,下一步是根据结果创建一个列表。在我的列表中,我需要获得文本文件中每个条目/行的行号。这能办到吗?多么?对于我的最终结果,我需要我的列表有一个Index属性。
我要说的是:
var file = System.IO.File.ReadAllLines(path);
var lineInfo = file.AsParallel().AsOrdered()
.Select(line => new
{
// index = **** I WANT THE INDEX/ROWNUMBER HERE ****
lineType = line.Substring(0, 2),
winID = line.Substring(11, 9),
effectiveDate = line.Substring(0, 2) == EmployeeLine ? line.Substring(237, 8).ToDateTimeExact("yyyyMMdd") : null,
line
})
.ToList()
.AsParallel();发布于 2014-06-11 15:36:29
Select有一个提供索引的覆盖。
因此,您应该能够更改您的选择,以包括它:
var lineInfo = file.AsParallel().AsOrdered()
.Select((line, index) => new
{
....
}
})
.ToList()
.AsParallel();但是,正如Servy在他的评论中指出的那样,如果您要加载整个文件,然后再迭代一次,那么您也可以以流的方式处理每一行。
不过,了解框架的新内容总是很有用的。
发布于 2014-06-11 15:37:19
你可以试试这个:
.Select((line,index) => new
{
Index = index
lineType = line.Substring(0, 2),
// the rest of your code.
})这里也是一个链接,在其中使用这个链接。
https://stackoverflow.com/questions/24167009
复制相似问题