当您不知道C#中的大小时,如何初始化1维数组?
我一直在努力尝试在不知道它的大小的情况下初始化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