实现两个数组列表的交叉合并
本文关键字:列表 合并 数组 两个 实现 | 更新日期: 2023-09-27 18:17:40
对于家庭作业,我们必须编写两个数组列表的交叉合并程序。我使用以下代码
完成了它 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循环为什么不能工作的任何帮助将不胜感激。
谢谢
这样做
while (i < Developed.Count || j < DPloyed.Count)
因为两个列表可能有不同的Count。
,你需要在循环中添加额外的检查索引,这样你就不会得到Index out of Range Exception
问题不在合并的实际代码中。在我的比较方法中发现问题。