对于家庭作业,我们必须编写 2 个 ArrayList 的交叉合并。我已经使用以下代码完成了
public void Intersection()
{
foreach (object obj1 in Developed)
{
Apps xApp = (Apps)obj1;
foreach (object obj2 in DPloyed)
{
Apps yApp = (Apps)obj2;
if (xApp.CompareName(yApp) == 0)
{
Inter.Add(yApp);
}
}
}
}
我想使用 while 循环来实现它,但下面的代码似乎在列表中保留了缺失的元素。它将第一个元素放在新的交集列表中,但是一旦开发的长度从 1 个元素增加到 5 个元素或更多,它就不会添加新元素。
public void Intersection()
{
int i = 0;
int j = 0;
while (i < Developed.Count && j < DPloyed.Count)
{
Apps curA = (Apps)Developed[i];
Apps curB = (Apps)DPloyed[j];
if (curA.CompareName(curB) == 0)
{
Inter.Add(curA);
i++;
j++;
}
else if (curA.CompareName(curB) < 0)
{
i++;
}
else
j++;
}
}
任何有关为什么 while 循环不起作用的帮助将不胜感激。
谢谢