C# 用C语言发送文本文件中的数组内容

C# 用C语言发送文本文件中的数组内容,c#,arrays,file-io,numbers,text-files,C#,Arrays,File Io,Numbers,Text Files,我正在用c语言创建一个小程序,它允许您将数字数组的内容发送到文本文件。但是当我打开文本文件时,它只显示数组10的最后一个元素。我如何确保他发送文本文件中的所有数字,而不仅仅是最后一个数字 int[] Numbers = { 1, 2, 4, 5, 6, 7, 8, 9, 10 }; string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); foreach (var

我正在用c语言创建一个小程序,它允许您将数字数组的内容发送到文本文件。但是当我打开文本文件时,它只显示数组10的最后一个元素。我如何确保他发送文本文件中的所有数字,而不仅仅是最后一个数字

int[] Numbers = { 1, 2, 4, 5, 6, 7, 8, 9, 10 };
        string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
        foreach (var x in Numbers)
        {
            File.WriteAllText(path + @"\" + "numbers.txt", x .ToString () + "\r\n";
        }
可以使用string.Join并去掉foreach:

或者可以使用foreach循环,但更改为AppendAllText而不是WriteAllText:


WriteAllText将替换文件中的所有文本,而AppendAllText将附加到文件中。在您的示例中,WriteAllText会覆盖以前的值,因此您只会以文件中的最后一个值结束。

只要将WriteAllText替换为AppendAllText即可。对于创建新文件的每个循环,您只需写入一行。在FOR循环之前只打开文件一次,然后在FOR循环之后关闭文件。这是最好的答案,因为i/o操作只发生一次
 File.WriteAllText(path + @"\numbers.txt", string.Join(Environment.NewLine, Numbers));
foreach (var x in Numbers)
{
    File.AppendAllText(path + @"\numbers.txt", x.ToString() + "\r\n");
}