如何用List定义多维数组?
我的想法是这样的;
先将List<List<List<double>>> list = new List<List<List<double>>>()初始化为
一个含有信息为
list[NX][NY][NZ]={0}的三维数组,然后再可以对list[NX][NY][NZ]进行任意的赋值。
但是List好像做多维比较麻烦,而且不能将三个维的长度先确定好。
像C++里面的vector定义三维那样
vector<vector<vector<double>> > vec(NX,vector<vector<double> >(NY, vector<double>(NZ)));
或者
vector<vector<vector<double>> > vec;
vec.resize(NX,vector<vector<double> >(NY, vector<double>(NZ)));
像这样的话就比较好赋值
List<List<List<string>>> list = new List<List<List<string>>>();
for (int i = 0; i < 4; i++)
{
List<List<string>> list2d = new List<List<string>>();
for (int j = 0; j < 4; j++)
{
List<string> list1d = new List<string>();
for (int k = 0; k < 4; k++)
{
string output = "i=" + Convert.ToString(i) +
" j=" + Convert.ToString(j) +
" k= " + Convert.ToString(k);
list1d.Add(output);
}
list2d.Add(list1d);
}
list.Add(list2d);
}
List定义多维数组
List<int,string> Mytable=new ListList<int,string>();
Mytable.add(0,"中国");
Mytable.add(1,"美国");
应该是你想要的
是定义一个大型的三维数组
mytable[1000][1000][1000]三维数组,想用list,如何定义
这个就是三维数组,但是每一维的长度不定,所以我想用Lsit,但是又没找到比较好定义的方式
如果是比较多结构的话,可以考虑下 写个类,然后List<定义的类>会比较灵活点,可读性比较强
谢谢,但是太抽象了,能不能具体点
谢谢你,你给的资料有点像,但是好像并不像,我想开辟的是大型的三维数组,就像table[1000][1000][1000]每一维都达到1000,你的资料里面好想就是将3个数组并列了
这个就是三维数组,但是每一维的长度不定,所以我想用Lsit,但是又没找到比较好定义的方式
@飞翔的思想: 如果是多维数组,本来就是可以的,如果每一维的长度不同,叫做锯齿数组。可以参考 http://www.cnblogs.com/zhaozhan/archive/2010/05/05/1727643.html
@陈希章: 在一个类中定义的话
private int crest[,,]=new int[,,];
他会出错,必须初始化每一维的长度,即必须private int crest[,,]=new int[1000,1000,1000];但是每一维的长度不固定,只能在后面赋值给它,所以遇到问题了?用List<List<List<dobule>>> 可以不用初始化长度,但是赋值的时候又比较麻烦,要不断add一维和二维list数组
@零号:
List<List<List<string>>> list = new List<List<List<string>>>();
for (int i = 0; i < 4; i++)
{
List<List<string>> list2d = new List<List<string>>();
for (int j = 0; j < 4; j++)
{
List<string> list1d = new List<string>();
for (int k = 0; k < 4; k++)
{
string output = "i=" + Convert.ToString(i) +
" j=" + Convert.ToString(j) +
" k= " + Convert.ToString(k);
list1d.Add(output);
}
list2d.Add(list1d);
}
list.Add(list2d);
}