问题描述
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Collections;namespacetest1{classProgram{staticvoidMain(string[]args){ArrayLista=newArrayList();a.Add("aaaa");a.Add(newint[]{10,20,30,40,50});//现在是这种情况了我要访问newint数组里面第2个元素也就是那个20怎么访问?这么给它赋值修改?Console.WriteLine(a[1][1]);//这样是编译错误的访问不到啊。。。Console.ReadKey();}}}
我需要的是在怎么去访问修改那些newint[]里面数组的值?如果我要的二维数组不固定也就是第二的那维个数不固定怎么办?也就是交错数组我怎么去设定?可不可以像Array那样先定义个数组去放着,过后要用的时候给它赋值?例如int[]myArr;这个当做ArrayList里面的第二维a.Add(myArr);我过后再去给第二的那维分配具体的元素个数myArr=newint[10];这种功能怎么在ArrayList里面怎么实现?
解决方案
解决方案二:
a[1]返回的是一个object,转成数组才能使用。varaaaa=newArrayList{"aaaa",newint[]{10,20,30,40,50}};varbbbb=((int[])aaaa[1])[1];
解决方案三:
引用1楼dogfish的回复:
a[1]返回的是一个object,转成数组才能使用。varaaaa=newArrayList{"aaaa",newint[]{10,20,30,40,50}};varbbbb=((int[])aaaa[1])[1];
如果说我里面数组是动态的怎么办?
解决方案四:
引用2楼Squall001的回复:
Quote: 引用1楼dogfish的回复:
a[1]返回的是一个object,转成数组才能使用。varaaaa=newArrayList{"aaaa",newint[]{10,20,30,40,50}};varbbbb=((int[])aaaa[1])[1];如果说我里面数组是动态的怎么办?
没有问题,转成数组之后一样可以使用,即使每个数组的长度不一样也可以。
解决方案五:
ArrayList主要是.net1.0使用的,在.net1.1以后其实.net框架就基本上不用了。你应该使用List<T>泛型,来进行比较(类型)明确的编程设计。并且集合类有更丰富更适合的操作方法。
解决方案六:
单就你所贴的代码来说,你应该使用List<int[]>类型来声明变量a。这不涉及到装箱拆箱,这也可以比较准确地描述a变量。
解决方案七:
如楼上:建议使用泛型集合List<T>