所以在previous quesiton中,我问我如何将多个数组列表合并到一个数组列表中。
This answer工作(也在下面列出)。但是,我在记录中遇到问题。如何从这个多维arraylist中获取数据。例如,如果我想获得地址怎么办?
ArrayList Names = new ArrayList();
ArrayList Phone = new ArrayList();
ArrayList Address = new ArrayList();
ArrayList res = new ArrayList();
for(int i=0; i<Names.Count; i++)
{
res.Add(new string[]{Names[i].ToString(), Phone[i].ToString(), Address[i].ToString()});
}
答案 0 :(得分:6)
您可以执行以下操作...我想确保并且我注意到,如果可以的话,您可能想要提供更好的数据结构或容器类。
string someAddress = ((string[])res[0])[2];
在这个例子中,我们将对象(字符串数组)放在res
的第一个索引处,然后索引到存储地址的字符串数组中。
您可以考虑类似以下内容,但要包含带有类型列表的数据..
public class Person
{
public string Name { get; set; }
public string Phone { get; set; }
public string Address { get; set; }
}
...
List<Person> people = new List<Person>();
people.Add(new Person() { Name = "Not Me", Phone = "(555) 212-1234", Address = "123 Fake St." });
string address = people[0].Address;
答案 1 :(得分:1)
就个人而言,我会把它变成一个结构。
public struct Record
{
public String Name;
public String Telephone;
public String Address;
}
将信息推送到结构中,然后重新引用它们。类似的东西:
ArrayList records = new ArrayList();
for (...) {
records.Add(new Record(){
Name = Names[i].ToString(),
Telephone = Phone[i].ToString(),
Address = Address[i].ToString()
});
}
...
Console.WriteLine(records[0].Address);
答案 2 :(得分:1)
假设这是.NET 2.0,而不是以后任何事情,所以你必须坚持使用ArrayList
,我只会介绍一个新类来保存你的信息。
public class Person
{
private string _name;
public string Name { get { return _name; } }
public Person(string name, string phone, string adress)
{
_name = name;
...
}
}
然后,您可以在arraylist中填充此类的实例并访问其属性。
答案 3 :(得分:1)
我可以问你为什么要创建像你这样的数组列表吗?在我看来,您最好创建一个具有3个属性的自定义对象 - &gt;名称,电话和地址,只需创建这些对象的列表:
驻地班级:
public class Resident
{
public string Name { get; set; }
public string Phone { get; set; }
public string Address { get; set; }
}
代码:
List<Resident> residents = new List<Resident>();
// populate list
foreach (var res in residents)
Console.WriteLine(res.Address);