我在写一个小程序来比较两个List。如果值相同,我将它们添加到列表中,如果它们不同,我将它们添加到不同的列表中。我注意到我的一些值被添加,有些不是,经过一段时间的调试后,我不确定问题是什么。有人可以点亮一下吗?谢谢。比较两个列表<int>
List<int> groupA = new List<int>();
List<int> groupB = new List<int>();
List<int> dups = new List<int>();
List<int> distinct = new List<int>();
groupA.Add(2);
groupA.Add(24);
groupA.Add(5);
groupA.Add(72);
groupA.Add(276);
groupA.Add(42);
groupA.Add(92);
groupA.Add(95);
groupA.Add(266);
groupA.Add(42);
groupA.Add(92);
groupB.Add(5);
groupB.Add(42);
groupB.Add(95);
groupA.Sort();
groupB.Sort();
for (int a = 0; a < groupA.Count; a++)
{
for (int b = 0; b < groupB.Count; b++)
{
groupA[a].CompareTo(groupB[b]);
if (groupA[a] == groupB[b])
{
dups.Add(groupA[a]);
groupA.Remove(groupA[a]);
groupB.Remove(groupB[b]);
}
}
distinct.Add(groupA[a]);
}
你能发布预期的结果吗? –
我认为你很快就会删除组[b]。因为你的工作就像这样A1 - > B1 2 3 4 5 6 7等,A2 - > b1 2 3 4 5。如果你从b中删除一个数字,它将无法显示在dups或独特的。但那只是我的本能。 :) –
你正在从列表中删除元素,同时迭代它们,所以循环条件(基于元素编号)可以被破坏... – digEmAll