【发布时间】:2021-11-04 13:09:39
【问题描述】:
假设我有两个列表列表 1 和列表 2。列表 1 具有字符串“ABCD”,列表 2 具有与列表 1 相同的项目,但有一些附加项目“1A23C4D”,我想将它们组合起来一个包含所有可能值且不重复的列表。所以我希望 ABCD1234 在第三个列表中
这就是我所拥有的
ArrayList list1 = new ArrayList();
list1.Add("A");
list1.Add("B");
list1.Add("C");
list1.Add("D");
ArrayList list2 = new ArrayList();
list2.Add("1");
list2.Add("A");
list2.Add("2");
list2.Add("3");
list2.Add("C");
list2.Add("4");
list2.Add("D");
ArrayList list3 = new ArrayList();
foreach(var item in list1)
{
list3.Add(item);
}
foreach (var item in list1)
{
foreach (var item2 in list2)
{
//if the item2 is not at all in the first list add it to the 3rd list
}
}
Console.ReadLine();
我弄清楚这一点的原因是因为我在做其他事情,我从一个数组列表中的一个 reg 键安装了所有软件,然后从另一个 reg 键安装了第二个数组列表中的所有软件,我想创建显示的所有已安装软件的组合列表不会重复显示。除了 c# 之外,我在其他语言中看到了与此类似的内容,所以我认为我要求 c#。谢谢
【问题讨论】:
-
你真的不应该使用
ArrayList它是泛型之前的遗留物。请改用List<string>。 -
除了使用
List<string>而不是@juharr 已经指出的ArrayList,考虑使用HashSet<string>以提高效率.Contains()