ArrayList 存放二维数组或者更高维度的 怎么实现

问题描述

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>

时间: 2024-08-23 02:45:54

ArrayList 存放二维数组或者更高维度的 怎么实现的相关文章

遍历XML文档返回二维数组(ASP)(更新版)

  <% on error resume next     '<![CDATA[]]>问题没处理     'xmlfile = "???.xml"     Set xml = Server.CreateObject("MSXML.DOMDocument")     xml.async = false     xml.load(xmlfile)Public Function PrettyPrint(node,tabLevel)on error res

c#二维数组声明简单例子

 protected void Page_Load(object sender, EventArgs e)         {             if (!IsPostBack)             {                 string[,] booklist ={                                         {"001","C# 3.0"},                                 

c++-请大神帮忙看看二维数组这样定义和删除正确吗,顺便问问还有其他更好的方法吗

问题描述 请大神帮忙看看二维数组这样定义和删除正确吗,顺便问问还有其他更好的方法吗 如图如图如图如图如图如图如图如图如图如图如图如图如图如图如图如图如图如图如图如图如图如图如图如图如图如图如图如图如图如图 解决方案 这么写没问题,但是如果你第二维的每一行长度相同,你其实可以用一维数组代替,比如 cin >> row >> col; char * ptable = new char[col * row]; ptable[i * col + j] = 'a'; // 相当于 ptabl

[总结]C语言二维数组作为函数的参数

前言:今天在实现装配线调度程序时候,用到了二维数组,并将其作为函数的参数.在写程序的时候,遇到一些问题,即二维数组做函数的参数应该如何正确表示.我写程序的错误如下程序所示: 1 #include <cstdio> 2 void print(int *a[3]) 3 { 4 printf("%d\n",a[0][0]); 5 } 6 7 int main() 8 { 9 int a[2][3] = {1,2,3,4,5,6}; 10 print(a); 11 return 0

C语言二维数组作为函数的参数

前言:今天在实现装配线调度程序时候,用到了二维数组,并将其作为函数的参数.在写程序的时候,遇到一些问题,即二维数组做函数的参数应该如何正确表示.我写程序的错误如下程序所示: #include <cstdio> void print(int *a[3]) { printf("%d\n",a[0][0]); } int main() { int a[2][3] = {1,2,3,4,5,6}; print(a); return 0; } 编译程序时候,在第10行提示错误信息:|

在java中一维数组和二维数组有什么区别吗?

问题描述 在java中一维数组和二维数组有什么区别吗? 求大神指点java中一维数组和二维数组的区别,为什么一位数组是一行 二维数组可以定义多行 解决方案 如图黑色的是一维数组红色的是二维数组一维数组用来存数据二维数组用来存一维数组 解决方案二: JAVA中一维数组和二维数组的定义一维数组及二维数组的用法java中arraylist和一维数组二维数组的转换 解决方案三: 一楼正解,一维和二维的区别就是线和面的区别,一维的数组你就可以通过一个下标来准确定位,而二维的就需要有两个就像坐标系一样,一维

java-Java二维数组存储一位数组的问题

问题描述 Java二维数组存储一位数组的问题 从一个txt文件中读出字符串,每一行输出一个record,但我想把所有record中的字符串存放到一个字符数组中,便于我下一步单个字符分析,该怎么改啊 import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; class test2 { public static void main(String[] args) { test2 t =

2013级C++第15周项目——二维数组

课程主页在:http://blog.csdn.net/sxhelijian/article/details/11890759 [项目1-折腾二维数组]创建一个长度为5行4列的二维整型数组,通过初始化,为数组中的前两列的10个元素赋初值,然后通过键盘输入,使后两列的10个元素获得值,将所有元素值乘以3后保存在数组中.输出数组时,按行序优先输出,再按列序优先输出(输出的第一行是数组中的第一列--,其实输出的就是"转置"),再将数组"倒"着输出(即最后一行最后一列的最先输

二维数组的认识及其表示元素的两种方式

/* ============================================================================ Name : TeatArr.c Author : lf Version : Copyright : Your copyright notice Description : 二维数组的认识以及其表示元素的两种方式 备注说明 1 要理解二维数组的存储方式. 2 实际上利用a[i][j]的方式并不"正统",但这靠近我们的 常识一些,