如何在c#中选择和重写文本文件的特定部分

本文关键字:文件 文本 定部 重写 选择 | 更新日期: 2023-09-27 18:29:32

我有一个文本文件,如下所示:

22 3
18 10 10
0 0 0 2 3 2
15 9 0 0 1 20
17 9 0 0 1 17

我将此文本文件读取为:

int counter = 0;
string line;
StreamReader file = new StreamReader("../../normal.txt");
while ((line = file.ReadLine()) != null)
{
   Console.WriteLine(line);
   counter++;
}

之后,我想删除前2行。除此之外,在剩下的行中选择第一个和第三个字符,并在已经阅读的文本下重写它们。因此,最终输出将是:

22 3
18 10 10
0 0 0 2 3 2
15 9 0 0 1 20
17 9 0 0 1 17
0 0
15 0
17 0

我该怎么做?

如何在c#中选择和重写文本文件的特定部分

这样的东西怎么样:

List<string> lineList = new List<string>();
while ((line = file.ReadLine()) != null)
{
    Console.WriteLine(line);
    lineList.add(line);
    counter++;
}
for(int i = 2; i < lineList.Count; i++) {
    string[] split = lineList[i].Split(new char[] {' '});
    Console.WriteLine(string.Format("{0} {1}", split[0], split[2]));
}

获取指定的输出;

List<string> data = new List<string>();
List<string> lines = File.ReadAllLines("../../normal.txt").ToList();
foreach (string item in lines.Skip(2))
{
    data = item.Split(new char[] {' '}).ToList();
    lines.Add(string.Format("{0} {1}", data[0], data[2]);
}
     var existingLines = File.ReadAllLines("../../normal.txt");
     var newLines = new List<string>();
     var appendedLines = new List<string>();
     for (var i = 2; i < existingLines.Length; i++)
     {
            // add a line
            newLines.Add(existingLines[i]);
            // add first and third character to the line
            var split = existingLines[i].Split(' ');
            appendedLines.Add(string.Format("{0} {1}", split[0], split[2]));
     }
     newLines.AddRange(appendedLines);
     File.WriteAllLines("../../newText.txt", newLines);