C# 多维数组、数组列表还是哈希表?
我试图找出如何构建多维“数组”,即:C# 多维数组、数组列表还是哈希表?,c#,arrays,multidimensional-array,arraylist,hashtable,C#,Arrays,Multidimensional Array,Arraylist,Hashtable,我试图找出如何构建多维“数组”,即: 柔性尺寸 使用两把钥匙 第一个键是int(灵活) 第二个键是字符串(有点受限) 其用途如下: console.writelen(array[0]["firstname"]); console.writelen(array[0]["lastname"]); console.writelen(array[0]["phone"]); console.writelen(array[1]["firstname"]); console.writelen(array
- 柔性尺寸
- 使用两把钥匙
- 第一个键是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"]);
我不相信你可以用数组来实现这一点,除非你有一个单一的KeyValuePair数组,但我认为你真的想要一本字典
var dic=newdictionary();
dic[0]=“零”;
dic[1]=“一”;
dic[2]=“两个”;
foreach(dic中的KeyValuePair kvp)
{
WriteLine(String.Format(“Key:{0},Value:{1}”,kvp.Key,kvp.Value);
}
您可以简单地使用:
Dictionary<int, Dictionary<string, string>>
在这种情况下,您也可以使用
列表
或字典
,而不是数组。您确定创建一个类/结构来包含数据更合适吗?例如:
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());
因此,如果愿意,您可以调用list.Add(new Person(){…})
。在这种情况下,您还可以使用集合初始值设定项:
var john = new Person() { FirstName = "John" };
var joe = new Person() { FirstName = "Joe" };
var list = new List<Person>() { john, joe };
var john=newperson(){FirstName=“john”};
var joe=newperson(){FirstName=“joe”};
var list=newlist(){john,joe};
实际上我只看到两个维度。第一个是行索引,第二个是列索引。对我来说这听起来像是一个索引。哦,对不起,我没有学习2键部分。var list=new list();list.Add(new Person());如何添加值非常有趣?list.Add(new Person(){FirstName=“Joe”,LastName=“Smith”,Phone=“foo”});像这样?在本例中,在这种情况下,如何显示项目标签{name,phone}而不是“item:”干杯
class Dat {
string name;
string phone;
}
var list = new Dat[128]
// access:
list[5].name = "matt";
class Person
{
public string FirstName
{
get;
set;
}
public string LastName
{
get;
set;
}
public string Phone
{
get;
set;
}
}
var array = new Person[1];
array[0] = new Person() { FirstName = "Joe", LastName = "Smith", Phone = "foo" };
var list = new List<Person>();
list.Add(new Person());
var foo = new Person();
foo.FirstName = "John";
var bar = new Person() { FirstName = "John" };
var john = new Person() { FirstName = "John" };
var joe = new Person() { FirstName = "Joe" };
var list = new List<Person>() { john, joe };