所以我在这样的文本文件中创建了一个行列表:
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,因为它有时真的可以节省时间。
关于c# - 获取文本文件中的最后两行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8582560/