C# · 12月 22, 2021

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>”);}

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

@H_403_10@解决方法 在这里,您可以再次利用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,因为它有时可以节省时间.

@H_403_10@ @H_403_10@