none
C# 定义一个未定义长度的数组的赋值问题! RRS feed

  • 问题

  • public double[] x1=new double[]{};  //定义数组

    现在我有100条数据,想放入 x1中,应该如何放入呢?

    使用x1[0]=num;之类的代码报错

    2011年9月2日 6:41

答案

  • 先用

    Array.Resize<double>(ref x1, 100);

    再放入 x1[0]=num;

    或直接声明

      List<double> yourList = new List<double>();
      yourList.Add(num);

    来使用


    Shadowと愉快なコード達

    2011年9月2日 6:57
  • 试下这段代码:
     static void Main(string[] args)
            {
                double[] array = new double[] { };
                while (true)
                {
                    array = Add(array, Convert.ToDouble(Console.ReadLine()));
                    for (int i = 0; i < array.Length; i++)
                    {
                        Console.WriteLine("array[{0}]:{1}", i, array[i]);
                    }
                }
                Console.ReadKey();
            }
            static double[] Add(double[] Array, double Arg)
            {
                if (Array == null)
                {
                    Array = new double[1];
                    Array[0] = Arg;
                }
                else
                {
                    double[] Temp = new double[Array.Length + 1];
                    for (int i = 0; i < Array.Length; i++)
                    {
                        Temp[i] = Array[i];
                    }
                    Temp[Temp.Length - 1] = Arg;
                    Array = Temp;
                }
                return Array;
    
            }
    


    循环添加数据。

     


    Best Regards,
    Rocky Yue[MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年9月5日 4:02
    版主

全部回复

  • 先用

    Array.Resize<double>(ref x1, 100);

    再放入 x1[0]=num;

    或直接声明

      List<double> yourList = new List<double>();
      yourList.Add(num);

    来使用


    Shadowと愉快なコード達

    2011年9月2日 6:57
  • C# 的数组必须要初始化,而且要定义长度。

    这样写是有问题,C#的编译器是不会通过的。

    想实现您的想法的话,考虑下使用泛型吧:

    http://msdn.microsoft.com/zh-cn/library/512aeb7t(VS.80).aspx

     


    Best Regards,
    Rocky Yue[MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年9月2日 9:25
    版主
  • 试下这段代码:
     static void Main(string[] args)
            {
                double[] array = new double[] { };
                while (true)
                {
                    array = Add(array, Convert.ToDouble(Console.ReadLine()));
                    for (int i = 0; i < array.Length; i++)
                    {
                        Console.WriteLine("array[{0}]:{1}", i, array[i]);
                    }
                }
                Console.ReadKey();
            }
            static double[] Add(double[] Array, double Arg)
            {
                if (Array == null)
                {
                    Array = new double[1];
                    Array[0] = Arg;
                }
                else
                {
                    double[] Temp = new double[Array.Length + 1];
                    for (int i = 0; i < Array.Length; i++)
                    {
                        Temp[i] = Array[i];
                    }
                    Temp[Temp.Length - 1] = Arg;
                    Array = Temp;
                }
                return Array;
    
            }
    


    循环添加数据。

     


    Best Regards,
    Rocky Yue[MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年9月5日 4:02
    版主