宿題のために、2 つの ArrayList の Intersection マージをプログラムする必要があります。次のコードを使用して実行しました
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 ループを使用するのではなく実装したいのですが、次のコードではリスト内の要素が欠落しているようです。最初の要素を新しい共通部分リストに入れますが、developed の長さが 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 ループが機能しない理由についてのヘルプをいただければ幸いです。
ありがとう