如何在 C# 中交换文本文件中的字符串内容

本文关键字:字符串 文件 交换 文本 | 更新日期: 2023-09-27 18:31:22

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

1 ... 3 4 2    
2 ... 3 21 4  
3 ... 6 4 21 15  
4 ... 14 21 12   

我想编辑这些字符串,以便将虚线部分后面的数字拆分为每个字符串的第一个数字。例如

1  
2 1  
3 1 2  
4 1 2 3  
...  
21 3 4  

我该怎么做?
注意:我从文本文件中获取第一个数字组并逐个字符串地编辑它。之后,我将编辑过的字符串写入文本文件。有鉴于此,我获取第一个数字组的代码示例部分如下所示:

        for (var i = 0; i < existingLines.Length; i++)
        {
            var split = existingLines[i].Split(''t');
            var act = i - 1;
            var sc1 = int.Parse(split[6]);
            var sc2 = int.Parse(split[7]);
            appendedLines.Add(string.Format("{0} {1} {2}", act, sc1, sc2));
        }  

如何在 C# 中交换文本文件中的字符串内容

此 LINQ 代码应该可以帮助您入门

        string path = "c:''temp''test.txt";
        using (var sr = new StreamReader(path))
        {
            var lines = new List<IEnumerable<int>>();
            while (!sr.EndOfStream)
            {
                lines.Add(sr.ReadLine().Split(new[] { '.', ' ' }, StringSplitOptions.RemoveEmptyEntries).Select(x => int.Parse(x)));
            }
            foreach (var node in lines.SelectMany(x => x).Distinct().OrderBy(x => x))
            {
                var predecessors = lines.Where(x => x.Skip(1).Contains(node))
                    .Select(x => x.First())
                    .OrderBy(x => x);
                Console.WriteLine(node + " " + string.Join(" ", predecessors));
            }
        }

输出

2 1
3 1 2
4 1 2 3
6 3
12 4
14 4
15 3
21 2 3 4