我一直在努力嘗試在不知道它的大小的情況下初始化1維數組,但是不知道它; 請告訴我如何聲明一個數組,其大小將根據C#中的要求動態增加。當您不知道C#中的大小時,如何初始化1維數組?
我的意思是,想要做這樣的事情
class A
{
int[] myarray;
int i=0;
while(i<5)
{
myarray[i]==n;
n=n%10;
i++;
}
}
請幫助!
我一直在努力嘗試在不知道它的大小的情況下初始化1維數組,但是不知道它; 請告訴我如何聲明一個數組,其大小將根據C#中的要求動態增加。當您不知道C#中的大小時,如何初始化1維數組?
我的意思是,想要做這樣的事情
class A
{
int[] myarray;
int i=0;
while(i<5)
{
myarray[i]==n;
n=n%10;
i++;
}
}
請幫助!
用戶還可以使用的ArrayList
System.Collections命名空間聲明這種類型的陣列的定義已知爲ArrayList的一類可存儲動態大小的對象數組。
ArrayList cities = new ArrayList();
cities.Add("Pune");
cities.Add("Mumbai");
在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);
}
}
}
realloc是邪惡的,不要去那裏。 – 2010-11-17 13:36:02
那麼當你調整一個STL向量的大小時,它會分配一個新的塊,複製數據,然後釋放原始塊。這是......呃...... realloc是做什麼的。我會想象C#的列表也是一樣的。 – Goz 2010-11-17 13:37:39
在C++:
#include <vector>
// ...
std::vector<int> myVector; // will resize as you 'push_back'
在語言的解決方案是:
C:malloc()
和realloc()
C++:std::vector
C#:List
在C中使用指針的malloc。
在C++中,你可以使用std :: vector < T>。
在C#中使用列表< T>。
即在C中使用C++和C#中的指針使用方便的容器類之一。
就是這麼簡單......
int IAmTheSize = 183475; // just a random int. Replace it with your value.
int[] myArray = new int[IAmTheSize];
可以初始化數組(S)與任何尺寸。 但是,如果您不知道其具體的尺寸,您可能需要查看List<>
課程。
List<int> myList;
int i=0;
while(i < 5)
{
myList.Add(n);
n = n % 10;
i++;
}
從你做的手術中,我意識到這是某種鍛鍊。 順便說一句,在陣列中賦值是用=
運算符完成的,如myarray[i]=n;
,而不是myarray[i]==n;
(將實際返回bool /布爾值/邏輯值)。
可以詳細瞭解List<>
類這裏:http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx
答案在每種語言中都不相同。你實際使用哪種語言? – Joren 2010-11-17 13:31:40
但在你的例子中,你知道它是'int [5]' – 2010-11-17 13:34:48
如果我修復你的代碼格式,請不要再刪除它... – 2010-11-17 13:40:27