C# 中定义长度可变的二维数组????

时间:2022-08-30 19:43:18
我想在C#中定义一个长度可变的二维数组,我想把从数据中取得的结果放到这个数组中??
是用 Array 来定义吗???

22 个解决方案

#1


数组长度貌似不可变  用集合应该就可以搞定了

#2


不可能吧!!我记得java可以的啊!!

#3


List<List<T>>
Array的长度不能变

#4


恩?怎么定义了 List?
请大家指点一下!

#5


            List<List<int>> list = new List<List<int>>();
            for (int i = 1; i < 10; i++)
            {
                List<int> item = new List<int>();
                for (int j = 1; j <= i; j++)
                {
                    item.Add(i * j);
                }
                list.Add(item);
            }
            foreach (List<int> item in list)
            {
                foreach (int value in item)
                {
                    Console.Write(value);
                    Console.Write('\t');
                }
                Console.WriteLine();
            }
            Console.ReadLine();

#6


呵,有点复杂,
我现在还想问另一个问题,我从数据库中取得了一个表的记录,放在了一个datatable中,我现在定义了一个行列跟datatable一样的二维数组,怎样直接把datatable的数据直接放到二维数组中呢???
请执教一下这个问题,

#7


不是datatable 是 DataSet

#8


datatable每一列的数据类型都是不一样的吧
这样的话,就算不变长,2维数组也处理不了(除非用object[][]或object[,])
每一行的数据类型应该可以事先确定吧,表都有了,可以写一个实体类,每一行变成这个实体类,二维数组问题,就变成了一维数组问题,变长的一维数组就是List<T>(这里的T是实体类的类名)里面直接Add实体类的实例

如果lz用的是1.x的话,就是ArrayList代替List<T>

#9


变成DataSet了。。。。
每个Table的实体类不同的话,少不了类型强转
DataSet相当于List<IList>,不过建议修改成Dictonary<string, IList>,string放表名,如果有其他更好的标识符,就换其他标识符
DataTable相当于List<T>
再把DataTable的List<T>实例添加到DataSet的对应实例里面

ArrayList的话,就是在ArrayList里面Add另一个ArrayList

#10


根本不用转,直接把 DataTable 当二维数组用行了

#11


我是想把DataTable的数据放入到数组中,以后的程序中用这个表就直接读这个二维数组就行了,不再操作数据库了??

#12


yzh - Invalid method body. 

谢谢你,谢谢!你说的有点复杂,小弟还是一头雾水!!!

#13


ArrayList简单点

#14


ArrayList简单点 同意楼上

#15


该回复于2008-03-05 17:13:21被版主删除

#16


有了DataSet,应该就简单了啊,比如你可用类型化的表对象(xxDataTable)或者
直接用DataTable对象来读取DataSet中的数据,直接用它的DataTable属性也可以
然后用,Rows(行集)来访问具体行成员就可以了.

#17


DataSet

#18


为什么要转啊 直接用不行吗

#19


看不懂!

#20


arraylist只能表示一维啊,二维可变长度怎么实现呢?

#21


List<ArrayList>

#22


引用 21 楼 liang__he 的回复:
List<ArrayList>


ArrayList al=new ArrayList();
al.add("aaa");
al.add("bbb");//随便你添加多少值

List<ArrayList> list=new List<ArrayList>();
list.add(al);//将ArrayList添加到List<>中去

//你可以写一个循环添加ArrayList添加到List<>中去

//获取值
foreach(ArrayList all in list)
{
     string stra=all[0].toString();
     string strb=all[1].toString();
}

#1


数组长度貌似不可变  用集合应该就可以搞定了

#2


不可能吧!!我记得java可以的啊!!

#3


List<List<T>>
Array的长度不能变

#4


恩?怎么定义了 List?
请大家指点一下!

#5


            List<List<int>> list = new List<List<int>>();
            for (int i = 1; i < 10; i++)
            {
                List<int> item = new List<int>();
                for (int j = 1; j <= i; j++)
                {
                    item.Add(i * j);
                }
                list.Add(item);
            }
            foreach (List<int> item in list)
            {
                foreach (int value in item)
                {
                    Console.Write(value);
                    Console.Write('\t');
                }
                Console.WriteLine();
            }
            Console.ReadLine();

#6


呵,有点复杂,
我现在还想问另一个问题,我从数据库中取得了一个表的记录,放在了一个datatable中,我现在定义了一个行列跟datatable一样的二维数组,怎样直接把datatable的数据直接放到二维数组中呢???
请执教一下这个问题,

#7


不是datatable 是 DataSet

#8


datatable每一列的数据类型都是不一样的吧
这样的话,就算不变长,2维数组也处理不了(除非用object[][]或object[,])
每一行的数据类型应该可以事先确定吧,表都有了,可以写一个实体类,每一行变成这个实体类,二维数组问题,就变成了一维数组问题,变长的一维数组就是List<T>(这里的T是实体类的类名)里面直接Add实体类的实例

如果lz用的是1.x的话,就是ArrayList代替List<T>

#9


变成DataSet了。。。。
每个Table的实体类不同的话,少不了类型强转
DataSet相当于List<IList>,不过建议修改成Dictonary<string, IList>,string放表名,如果有其他更好的标识符,就换其他标识符
DataTable相当于List<T>
再把DataTable的List<T>实例添加到DataSet的对应实例里面

ArrayList的话,就是在ArrayList里面Add另一个ArrayList

#10


根本不用转,直接把 DataTable 当二维数组用行了

#11


我是想把DataTable的数据放入到数组中,以后的程序中用这个表就直接读这个二维数组就行了,不再操作数据库了??

#12


yzh - Invalid method body. 

谢谢你,谢谢!你说的有点复杂,小弟还是一头雾水!!!

#13


ArrayList简单点

#14


ArrayList简单点 同意楼上

#15


该回复于2008-03-05 17:13:21被版主删除

#16


有了DataSet,应该就简单了啊,比如你可用类型化的表对象(xxDataTable)或者
直接用DataTable对象来读取DataSet中的数据,直接用它的DataTable属性也可以
然后用,Rows(行集)来访问具体行成员就可以了.

#17


DataSet

#18


为什么要转啊 直接用不行吗

#19


看不懂!

#20


arraylist只能表示一维啊,二维可变长度怎么实现呢?

#21


List<ArrayList>

#22


引用 21 楼 liang__he 的回复:
List<ArrayList>


ArrayList al=new ArrayList();
al.add("aaa");
al.add("bbb");//随便你添加多少值

List<ArrayList> list=new List<ArrayList>();
list.add(al);//将ArrayList添加到List<>中去

//你可以写一个循环添加ArrayList添加到List<>中去

//获取值
foreach(ArrayList all in list)
{
     string stra=all[0].toString();
     string strb=all[1].toString();
}