簡體   English   中英

文本文件的最后三行

[英]Last three Lines of text file

我需要一點幫助! 我無法弄清楚如何使用文件的最后三行並將每一行存儲到單獨的字符串中。 如果可能的話,數組也可以工作。

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

如果有人可以為此使用數組,我將如何只獲得最后三行。 請注意,我不知道文件的長度!

謝謝

這似乎有點簡單。

更新資料

如果數組的長度小於3。 這應該根據計數打印最后三行,如果i == -1,則應少於三行

string[] lines = File.ReadAllLines(myFile)
// Get the last three lines
int count = 0;
for (int i = lines.length - 1; i >= 0; i++)
{
    Console.WriteLine(lines[i]);
    count++;
    if (count == 3) 
    {
        break;
    }
}
var last3lines = lines.Skip(lines.Length - 3).ToArray();

以一種不需要您使用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]);

或按last,last-1,last-2的順序獲取它們:

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

效率低下,但有效: 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM