有没有办法使用File.ReadLines获取特定的一组行?

时间:2016-07-09 03:04:58

标签: c#

我试图抓住文本文件中前两行之后的每一行,并将它们放入一个字符串中。

我到目前为止所拥有的是

Count = File.ReadLines(filepath).Count();
String Lines = File.ReadLines(filepath.Skip(2).Take(Count -2).First());

这抓住了我想要的第一行但是在那之后没有收集任何行。 我假设这是因为一个字符串只能容纳一行?我不确定这是不是我做错了,但如果是,我找不到解决问题的办法。

1 个答案:

答案 0 :(得分:2)

File.ReadLines会返回IEnumerable<string>,而非string。调用.Take()是不必要的,因为你想要前两行之后的所有内容,对First()的调用将获取序列中的第一个结果并丢弃其余的(这不是你想要的)。

所以将lines声明为IEnumerable<string>并删除Take()First()(同时注意您的父母的顺序,因为您发布的代码应该有{{} 1}} )之后}:

filepath

或者,您可以将IEnumerable<string> lines = File.ReadLines(filepath).Skip(2); 定义为字符串数组或lines,并在LINQ语句末尾调用List<T>ToArray(),如下所示:< / p>

ToList()

string[] lines = File.ReadLines(filepath).Skip(2).ToArray();

您也可以使用List<string> lines = File.ReadLines(filepath).Skip(2).ToList();

var