我正在尝试使用C#将数组写入文件并且遇到问题。 我在最近几天开始学习c#,现在无法弄清楚为什么会这样。
namespace Arrays
{
class Program
{
static void Sort()
{
}
public static void Random()
{
int[] test2 = new int[5];
int Min = 1;
int Max = 100;
Random randNum = new Random();
for (int i = 0; i < test2.Length; i++)
{
test2[i] = randNum.Next(Min, Max);
Console.WriteLine(test2[i]);
}
Console.WriteLine("");
for (int ii = 0; ii < test2.Length; ii++)
{
Array.Sort(test2);
Console.WriteLine(test2[ii]);
}
String writeToText = string.Format("{0}", test2);
System.IO.File.WriteAllText(@"C:\\Users\\hughesa3\\Desktop\\log.txt", writeToText); // Writes string to text file
}
static void Main(string[] args)
{
Random();
}
}
}
它生成一个随机的5个数字并将其放入数组中。当我尝试将其写入文件时,它会打印System.Int32 []
我理解,因为我试图打印一个格式化的字符串,但我将如何打印每个int?我已经尝试过使用循环,但只会保存最后一个int,因为我把它放在循环中?
有人能给我一些建议吗?
由于
答案 0 :(得分:1)
使用WriteAllLines
并将字符串数组作为输入。
System.IO.File.WriteAllLines("filename", test2.Select(i=>i.ToString()).ToArray());
或者,如果您想以,
分隔的形式书写,请使用此。
System.IO.File.WriteAllText("filename", string.Join(",", test2.Select(i=>i.ToString()).ToArray());
答案 1 :(得分:1)
问题是String writeToText = string.Format("{0}", test2);
调用ToString
数组的test2
方法并返回System.Int32[]
将其更改为
String writeToText = string.Join("", test2.Select(x=>x.ToString())
或
String writeToText = string.Format("{0}", test2.Select(x=>x.ToString().Aggregate((c,n)=>string.Format("{0}{1}", c,n))
答案 2 :(得分:0)
//Add this method and use in System.IO.File.WriteAllText(@"C:\\Users\\hughesa3\\Desktop\\log.txt", ArrayToString(test2));
public static String ArrayToString(int[] arr)
{
return arr.Aggregate("", (current, num) => current + (num + " "));
}