您好,我在想知道是否有任何方法可以将多个ArrayList合并到多个数组中。将多重列表转换为多维数组
Exmaple
我有arraylist1其中包含名称。包含电话号码的arraylist 2和包含地址的arraylist 3。我怎么能将这些合并成一个多数组,以便将它作为一个记录?
您好,我在想知道是否有任何方法可以将多个ArrayList合并到多个数组中。将多重列表转换为多维数组
Exmaple
我有arraylist1其中包含名称。包含电话号码的arraylist 2和包含地址的arraylist 3。我怎么能将这些合并成一个多数组,以便将它作为一个记录?
让假设你有串并ith
指数形式记录所有元素三个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()});
}
你也可以做一个新的对象[]或一个新的类或结构来保存每个组合成员,所以你不必处理“字符串化”。 – 2011-06-01 18:50:22
但是,如何从arraylist中获取信息? – Andy12 2011-06-01 20:00:36
取回值类型将其转换为字符串[]。 – 2011-06-02 04:20:55
难道这些的ArrayList以某种方式相关的内容,如通讯录?
如果是这样,请考虑创建一个类来表示一个联系人。此联系人类可以具有姓名,电话号码和地址属性。您甚至可以为这些属性中的每个属性使用一个集合,以防给定的联系人记录应用多个属性。
您可以将不同的联系人记录存储到ArrayList中,或者如果您使用.NET 2+或强类型列表。
+1提到实际创建一个对象来表示三个字段。 C#是一种面向对象的语言...为什么不使用它呢? – 2011-06-01 18:56:58
如果你在.NET 4.0中运行,你应该使用List<T>
,尽管如果你愿意,你仍然可以用ArrayList
来做到这一点。但是你可以利用Tuple
到您的类型容易结合起来(虽然我完全同意的建议,以创建一个自定义的类来保存“记录”):
List<string> phones = new List<string>();
List<string> addresses = new List<string>();
List<string> names = new List<string>();
// fill with data
List<Tuple<string,string,string>> results = new List<Tuple<string, string, string>>();
// aggregate with data - if only two you could also use Zip()
for (int i = 0; i < names.Count; i++)
{
results.Add(Tuple.Create(names[i], addresses[i], phones[i]));
}
问题,我如何从Arraylist中获取信息,因为它似乎在多类型列表中? – Andy12 2011-06-01 19:37:27
什么版本的.NET(的帮助我知道是否你可以使用LINQ或不使用,也可以使用列表而不是ArrayList)? –
2011-06-01 18:41:39
数组以相同的顺序?我的意思是,名称[0] = PhoneNumbers [0] =地址[0]? – 2011-06-01 18:41:51