c# – 获取文本文件中的最后两行

前端之家收集整理的这篇文章主要介绍了c# – 获取文本文件中的最后两行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我在文本文件中创建一个行列表,如下所示:
var lines = File.ReadAllLines("C:\\FileToSearch.txt")
                .Where(x => !x.EndsWith("999999999999"));

并像这样循环

foreach (var line in lines)
{ 
    if (lineCounter == 1)
    {
        outputResults.Add(oData.ToCanadianFormatFileHeader());
    }
    else if (lineCounter == 2)
    {
        outputResults.Add(oData.ToCanadianFormatBatchHeader());
    }
    else
    {
        oData.FromUsLineFormat(line);
        outputResults.Add(oData.ToCanadianLineFormat());

    }
    lineCounter = lineCounter + 1;
    textBuilder += (line + "<br>");
}

类似于我访问前两行我想分别访问最后一行和倒数第二行

解决方法

在这里,您可以再次利用LINQ:
var numberOfLinesToTake = 2;
var lastTwoLines = lines
     .Skip(Math.Max(0,lines.Count() - numberOfLinesToTake))
     .Take(numberOfLinesToTake);

var secondToLastLine = lastTwoLines.First();
var lastLine = lastTwoLines.Last();

或者,如果您想单独检索它们:

var lastLine = lines.Last();
var secondToLastLine = 
    lines.Skip(Math.Max(0,lines.Count() - 2)).Take(1).First();

我将.First()添加到最后,因为.Take(1)将返回一个包含一个项目的数组,然后我们用First()获取.这可能是优化的.

同样,您可能希望熟悉LINQ,因为它有时可以节省时间.

原文链接:https://www.f2er.com/csharp/91258.html

猜你在找的C#相关文章