C# 是否可以将文本文件中的行移动到另一个特定行?

C# 是否可以将文本文件中的行移动到另一个特定行?,c#,.net,file-io,C#,.net,File Io,我最近一直在编辑一些文本文件,所有这些文件都非常相似,需要相同类型的编辑。手动进行这些编辑非常耗时,因此我开始研究C语言,以自动完成其中大部分内容。我能够想出如何做一些编辑,但我不能为我的生活想出如何编码最耗时的部分 在指定行插入新行后,是否可以移动文本文件中以特定字符串开头的所有行(在本例中为“32”),并将它们移动到文本文件中的特定行(在本例中为第70行)?我有代码来选择文件,我也想这样做,我只是不知道如何实际移动线 下面的代码实现了我想要的一切,除了第70行的输出是System.Colle

我最近一直在编辑一些文本文件,所有这些文件都非常相似,需要相同类型的编辑。手动进行这些编辑非常耗时,因此我开始研究C语言,以自动完成其中大部分内容。我能够想出如何做一些编辑,但我不能为我的生活想出如何编码最耗时的部分

在指定行插入新行后,是否可以移动文本文件中以特定字符串开头的所有行(在本例中为“32”),并将它们移动到文本文件中的特定行(在本例中为第70行)?我有代码来选择文件,我也想这样做,我只是不知道如何实际移动线

下面的代码实现了我想要的一切,除了第70行的输出是System.Collections.Generic.List`1[System.String]

foreach (string osuFilePath in openFileDialog1.FileNames)
        {
            string[] osuArray = File.ReadAllLines(osuFilePath);

            List<string> osuList = osuArray.ToList();

            List<string> osuStr = osuList.FindAll(s => s.StartsWith("32,"));

            osuList.RemoveAll(ss => ss.StartsWith("32,"));

            string osuString = osuStr.ToString();

            osuList.Insert(70, osuString);

            File.WriteAllLines(osuFilePath + "v2", osuList.ToArray());

        }
foreach(openFileDialog1.FileNames中的字符串文件路径)
{
字符串[]osuArray=File.ReadAllLines(osuFilePath);
List osuList=osuArray.ToList();
List osuStr=osuList.FindAll(s=>s.StartsWith(“32,”);
osuList.RemoveAll(ss=>ss.StartsWith(“32,”);
字符串osuString=osuStr.ToString();
osuList.插入(70,OSUListing);
writeAllines(osuFilePath+“v2”,osuList.ToArray());
}
您可以这样做

string[] arrText;
string lineThreeHundred;

arrText = File.ReadAllLines("c:\test.txt");
lineThreeHundred = arrText[299];// choose line
最简单的方法是:

string[] lines = File.ReadAllLines("MyFile.txt");
//List<string> lines2 = lines.ToList();

// manipulate here your array of lines

File.WriteAllLines("MyFile.txt", lines);
//File.WriteAllLines("MyFile.txt", lines2.ToArray());
string[]lines=File.ReadAllLines(“MyFile.txt”);
//List lines2=lines.ToList();
//在这里操纵你的线数组
writeAllines(“MyFile.txt”,行);
//writeAllines(“MyFile.txt”,lines2.ToArray());

如果您喜欢使用
列表
而不是
字符串[]
,则会显示注释行。操作
列表通常更容易

显然是的。实际问题应该是“如何?”

例如:

List<string> lines = File.ReadAllLines("/file/path").ToList();

// change line position
String line = lines[3];
lines.RemoveAt(3);
lines.Insert(7, line);

File.WriteAllLines("/file/path", lines.ToArray());
List lines=File.ReadAllLines(“/File/path”).ToList();
//换行位置
字符串行=行[3];
行。移除(3);
行。插入(7,行);
File.writeAllines(“/File/path”,lines.ToArray());

(将第4行移到第8行)

答案是肯定的“是”,但到目前为止,您尝试了什么?如果您向我们展示了您所做的工作,那么我们可以帮助您填空或提出更正建议。@Kethsar如果我理解正确,那么您希望将以“32”开头的行移到同一文本文件中的另一行,例如第70行。如果是这样,请回复,我们将尝试为您执行此操作?,如果不是这样的话,请尝试用一些例子和代码来解释你自己,你曾试图实现这一点吗?@Aviral-Yup,差不多就是这样。至于我试过的代码。。。我现在将把它编辑到主帖子中。