所以我在文本文件中创建一个行列表,如下所示:
var lines = File.ReadAllLines("C:\\FileToSearch.txt")
.Where(x => !x.EndsWith("999999999999"));
Run Code Online (Sandbox Code Playgroud)
并像这样循环
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>");
}
Run Code Online (Sandbox Code Playgroud)
类似于我访问前两行我想分别访问最后一行和倒数第二行
Den*_*aub 11
在这里,您可以再次利用LINQ:
var numberOfLinesToTake = 2;
var lastTwoLines = lines
.Skip(Math.Max(0, lines.Count() - numberOfLinesToTake))
.Take(numberOfLinesToTake);
var secondToLastLine = lastTwoLines.First();
var lastLine = lastTwoLines.Last();
Run Code Online (Sandbox Code Playgroud)
或者,如果您想单独检索它们:
var lastLine = lines.Last();
var secondToLastLine =
lines.Skip(Math.Max(0, lines.Count() - 2)).Take(1).First();
Run Code Online (Sandbox Code Playgroud)
我添加.First()到最后,因为.Take(1)将返回一个包含一个项目的数组,然后我们抓住它First().这可能是优化的.
同样,您可能希望熟悉LINQ,因为它有时可以节省时间.
| 归档时间: |
|
| 查看次数: |
774 次 |
| 最近记录: |