当你不知道C#中的大小时,如何初始化1维数组?

时间:2010-11-17 13:30:26

标签: c#

我一直在努力尝试初始化一维数组而不知道它的大小,但是没有得到它; 请告诉我如何根据C#中的要求声明一个大小会动态增加的数组。

我的意思是,想要做这样的事情

class A
{
    int[] myarray;
    int i=0;
    while(i<5)
    {
        myarray[i]==n;
        n=n%10;
        i++;
    }
}

请帮助!!!

6 个答案:

答案 0 :(得分:5)

在C中你必须使用Malloc和Realloc,在C#中你应该更喜欢List。

Class A {
   List<int> integerList = new List<int>();

   void DoSometing() {   
   for(int i = 0; i < somewhat; i++) {
         integerList.Add(i);
      }
   }
}

答案 1 :(得分:1)

在C ++中:

 #include <vector>

 // ...

 std::vector<int> myVector;  // will resize as you 'push_back'

答案 2 :(得分:1)

语言中的解决方案是:

C:malloc()realloc()

C ++:std::vector

C#:List

答案 3 :(得分:0)

在C中你使用指针的malloc 在C ++中,你可以使用std :: vector&lt; T&gt;。
在C#中使用List&lt; T&gt;。

即在C中使用C ++中的指针,C#使用其中一个方便的容器类。

答案 4 :(得分:0)

这很容易......

int IAmTheSize = 183475; // just a random int. Replace it with your value.
int[] myArray = new int[IAmTheSize];

您可以使用任何大小初始化数组。 但如果您不知道它的确切大小,您可能需要查看List<>类。

List<int> myList;

int i=0;
while(i < 5)
{
    myList.Add(n);
    n = n % 10;
    i++;
}

从你的行动中,我意识到这是一种锻炼。 顺便说一句,在数组中分配值是使用=运算符完成的,如myarray[i]=n; myarray[i]==n;(实际上将返回bool / boolean / logical值) )。


您可以在此处详细了解List<>课程:http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx

答案 5 :(得分:0)

用户也可以使用ARRAYLIST

声明这种类型的数组

System.Collections命名空间定义了一个名为ArrayList的类,它可以存储动态大小的对象数组。

   ArrayList cities = new ArrayList();
   cities.Add("Pune");
   cities.Add("Mumbai");