首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从File.ReadAllLines()结果中获取行号

从File.ReadAllLines()结果中获取行号
EN

Stack Overflow用户
提问于 2014-06-11 15:34:13
回答 2查看 2.2K关注 0票数 2

我正在使用File.ReadAllLines()读取文本文件,但也可以使用File.ReadLines()。读取文件后,下一步是根据结果创建一个列表。在我的列表中,我需要获得文本文件中每个条目/行的行号。这能办到吗?多么?对于我的最终结果,我需要我的列表有一个Index属性。

我要说的是:

代码语言:javascript
复制
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();
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-11 15:36:29

Select有一个提供索引的覆盖

因此,您应该能够更改您的选择,以包括它:

代码语言:javascript
复制
var lineInfo = file.AsParallel().AsOrdered()
    .Select((line, index) => new
    {     
         ....
    }
 })
 .ToList()
 .AsParallel();

但是,正如Servy在他的评论中指出的那样,如果您要加载整个文件,然后再迭代一次,那么您也可以以流的方式处理每一行。

不过,了解框架的新内容总是很有用的。

票数 4
EN

Stack Overflow用户

发布于 2014-06-11 15:37:19

你可以试试这个:

代码语言:javascript
复制
.Select((line,index) => new
{     
   Index = index
   lineType = line.Substring(0, 2),
   // the rest of your code.
 })

这里也是一个链接,在其中使用这个链接。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24167009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档