你好我很想知道是否有任何方法可以将多个arraylist合并为一个多数组。
Exmaple
我有arraylist1,其中包含姓名。持有电话号码的arraylist 2和持有地址的arraylist 3。我怎么能将这些合并为一个多数组,所以它将作为记录?
答案 0 :(得分:2)
假设您有三个字符串ArrayList,ith
索引处的所有元素都形成一条记录,
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()});
}
答案 1 :(得分:1)
这些ArrayLists的内容是否以某种方式相关,例如联系人?
如果是这样,请考虑创建一个表示单个联系人的类。此联系人类可以具有Name,PhoneNumber和Address属性。您甚至可以为每个属性使用一个集合,以防多个应用于给定的联系人记录。
您可以将不同的联系人记录存储到ArrayList中,或者如果您使用的是.NET 2+强类型列表。
答案 2 :(得分:0)
如果您在.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]));
}