如何创建二维动态长度数组?

时间:2011-07-17 10:38:12

标签: c# arrays dynamic arraylist

我想创建一个二维数组,而不知道第一维的大小。

例如,当我创建一个数组时,我有一个未知的行数。 每行代表一个帐户。 每行退出4列:ID,名称,用户,密码

我尝试使用锯齿状数组,但不可能有:

int[][] jaggedArray = new int[][3];

我也查找了ArrayList,使用了clases和一些关于泛型的实现。

我正在寻找一种可以轻松操作数据的解决方案:

  • 添加到列表,选择,输入元素
  • 使用数据库查询中的元素
  • 在其他功能中使用其作为参数

因为我是.NET(C#)的新手,请为我提供代码解决方案,而不是通用(寻找)解决方案

3 个答案:

答案 0 :(得分:17)

IMO,由于“列”已修复,因此声明了一个类:

public class Account
{
    public int ID {get;set;}
    public string Name {get;set;}
    public string User {get;set;}
    public string Password {get;set;} // you meant salted hash, right? ;p
}

现在有一个:

List<Account> list = new List<Account>();

这有你需要的一切:

  

添加到列表,选择,输入元素

list.Add

  

使用数据库查询中的元素   在其他函数中用作参数

模糊而没有更多信息,但您可以传递Account或不定值或整个列表。

答案 1 :(得分:2)

.NET中没有动态长度数组这样的东西。请改用List<>

实例化数组时,所有数组边界都需要知道。可能让你感到困惑的是,这似乎与锯齿状数组不同,但它不是:因为它是一个数组数组,当你实例化它时,它将是一个未实例化数组的数组(例如null引用)。然后,您需要再次分配每个阵列以使用它们。

答案 2 :(得分:0)

只要我知道,我们无法在不知道其大小的情况下实例化数组。为什么不尝试列表数组?像这样:

List<int>[] a = new List<int>[yourDesireColumnNumber];

使用List,添加,选择,输入元素是微不足道的。如果要将其作为参数提供给其他函数,只需定义Type。