İki Liste'yi karşılaştırmak için küçük bir program yazıyorum. Değerler aynıysa, bunları liste kopyalarına eklerim, eğer farklılarsa, onları ayrı olarak eklerim. Bazı değerlerimin eklendiğini ve bazılarının olmadığını ve bir süre hata ayıkladıktan sonra sorunun ne olduğundan emin olmadığımı fark ettim. Birisi biraz ışık tutabilir mi? Teşekkürler.İkili Karşılaştır <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]);
}
Beklenen sonuçları kaydeder misiniz? –
Sanırım [b] grubunu yakında kaldırıyorsunuz. Çünkü sizin için bu A1 -> B 1 2 3 4 5 6 7 vs gibi işler, A2 -> b1 2 3 4 5.Bir sayıyı b'den kaldırırsanız, dups veya ayrı olarak gösterilemez. Ama bu sadece içgüdüm. :) –
Onları yineleyerek öğeleri listeden çıkarıyorsunuz, böylece döngü koşulları (öğe sayısına göre) tehlikeye düşebilir ... – digEmAll