最后三行文本文件

时间:2015-04-30 23:28:32

标签: c#

我需要一点帮助!我无法弄清楚如何取一个文件的最后三行并将每个行存储到一个单独的字符串。如果可能的话,阵列也会起作用。

string[] lines = File.ReadAllLines(myfile);

如果有人可以使用数组,我怎么才能得到最后三行。请注意我不知道文件的长度!

由于

3 个答案:

答案 0 :(得分:3)

var last3lines = lines.Skip(lines.Length - 3).ToArray();

答案 1 :(得分:1)

对于一种不需要您使用ReadAllLines在大数组中加载文件中的所有行的方法,但只是一次读取一行,只保留最后(3)个读取的行,能做到:

var threeLines = new string[3];
var nLines = 0;
foreach (var line in File.ReadLines(myFile))
{
    var ndx = nLines % 3;
    threeLines[ndx] = line;
    nLines++;
}

此外,如果您的输入中少于3行,则不会崩溃。

for (var i = 0; i < Math.Min(nLines, 3); i++)
    Console.WriteLine(threeLines[i]);

或按顺序排列最后一个,最后一个,最后一个2:

for (var i = Math.Min(nLines, 3); i > 0; i--)
    Console.WriteLine(threeLines[i-1]);

答案 2 :(得分:0)

效率不高但有效:lines.Reverse().Take(3).Reverse()

替代:

line1 = lines[lines.length-3] // Third to last
line2 = lines[lines.length-2]
line3 = lines[lines.length-1] // Last line