私は2つのリストを比較する小さなプログラムを書いています。値が同じ場合は、それらをリストダップに追加します。異なる場合は、それらを別名に追加します。私はいくつかの値が追加されていて、いくつかは追加されていないことに気付きました。しばらくの間デバッグした後、私はその問題が何であるか確信していません。誰かが少し光を当てることができますか?ありがとう。2つのリストを比較する<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のような作品 - > B 1 2 3 4 5 6 7など、A2 - > b1 2 3 4 5。あなたがbから数字を削除すると、dupsやdistinctに現れることはありません。しかし、それはちょうど私の本能です。 :) –
ループの条件(要素番号に基づいて)が損なわれる可能性があるので、反復処理中にリストから要素を削除しています... – digEmAll