在 C# 的文本文件中发送数组的内容
Send the content of an Array in a text file in C#
我正在用 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
:
File.WriteAllText(path + @"\numbers.txt", string.Join(Environment.NewLine, Numbers));
或者您可以使用 foreach
循环,但改为 AppendAllText
而不是 WriteAllText
:
foreach (var x in Numbers)
{
File.AppendAllText(path + @"\numbers.txt", x.ToString() + "\r\n");
}
WriteAllText
将替换文件中的所有文本,而 AppendAllText
将附加到文件中。在您的示例中,WriteAllText
正在覆盖先前的值,因此您最终只会得到文件中的最后一个值。
我正在用 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
:
File.WriteAllText(path + @"\numbers.txt", string.Join(Environment.NewLine, Numbers));
或者您可以使用 foreach
循环,但改为 AppendAllText
而不是 WriteAllText
:
foreach (var x in Numbers)
{
File.AppendAllText(path + @"\numbers.txt", x.ToString() + "\r\n");
}
WriteAllText
将替换文件中的所有文本,而 AppendAllText
将附加到文件中。在您的示例中,WriteAllText
正在覆盖先前的值,因此您最终只会得到文件中的最后一个值。