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

use*_*568 8 c# arrays arraylist dynamic

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

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

我尝试使用锯齿状阵列,但不可能:

int[][] jaggedArray = new int[][3];
Run Code Online (Sandbox Code Playgroud)

我也寻找ArrayList,实现与clases和一点关于泛型.

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

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

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

Mar*_*ell 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
}
Run Code Online (Sandbox Code Playgroud)

现在有一个:

List<Account> list = new List<Account>();
Run Code Online (Sandbox Code Playgroud)

这有你需要的一切:

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

list.Add 等等

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

没有更多信息的模糊,但你可以传递Account或不传递值,或整个列表.

  • @user你的意思是`list [0] .Name`? (2认同)

Luc*_*ero 2

.NET 中不存在动态长度数组之类的东西。使用 aList<>代替。

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