在c#中将数组写入文件

时间:2016-04-08 09:54:00

标签: c#

我正在尝试使用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,因为我把它放在循环中?

有人能给我一些建议吗?

由于

3 个答案:

答案 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 + " "));
    }