C# 多维数组、ArrayList 或哈希表?

标签 c# arrays multidimensional-array arraylist hashtable

我正在尝试弄清楚如何构建一个多维“数组”,即:

  • 灵活的尺寸
  • 使用2个键
  • 第一个键是 int(灵活)
  • 第二个键是字符串(有限的)

使用方式如下:

console.writelen(array[0]["firstname"]);
console.writelen(array[0]["lastname"]);
console.writelen(array[0]["phone"]);

console.writelen(array[1]["firstname"]);
console.writelen(array[1]["lastname"]);
console.writelen(array[1]["phone"]);

.....
.....

console.writelen(array[x]["firstname"]);
console.writelen(array[x]["lastname"]);
console.writelen(array[x]["phone"]);

最佳答案

您确定创建一个类/结构来包含数据不是更合适吗?例如:

class Person
{
    public string FirstName
    {
        get;
        set;
    }

    public string LastName
    {
        get;
        set;
    }

    public string Phone
    {
        get;
        set;
    }
}

然后你只需创建一个 Person 数组:

var array = new Person[1];
array[0] = new Person() { FirstName = "Joe", LastName = "Smith", Phone = "foo" };

或者,既然您说的是“灵活大小”,也许您需要一个列表:

var list = new List<Person>();
list.Add(new Person());

更新:第一个示例中用于设置array[0] 的语法是object initializer。 ;以下两个片段大致相同:

var foo = new Person();
foo.FirstName = "John";

var bar = new Person() { FirstName = "John" };

所以是的,如果你愿意,你可以调用 list.Add(new Person() { ... })。在这种情况下,您还可以使用集合初始值设定项:

var john = new Person() { FirstName = "John" };
var joe = new Person() { FirstName = "Joe" };
var list = new List<Person>() { john, joe };

关于C# 多维数组、ArrayList 或哈希表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2763909/

相关文章:

c# - SHA 哈希的最佳临时密码长度

c# - [DebuggerDisplay(...)] 属性有用的示例?

arrays - Swift:检查 jsonObjectWithData 是否为 json

ruby - 负索引如何与 `Array#[]=` 一起使用?

Javascript:为什么数组切片方法可以将节点列表或参数转换为数组?

java sql查询从csv文件导入的数据

c# - 限制自定义控件的可调整大小尺寸 (c# .net)

c# - ASP :textbox select all text by click button and copy to client clipboard

c - 如何为指针和三维数组动态分配内存

c - 如何在没有分支的情况下实现二维环面