Tôi đang viết một chương trình nhỏ để so sánh hai Danh sách. Nếu các giá trị giống nhau, tôi thêm chúng vào danh sách các dups, nếu chúng khác nhau, tôi thêm chúng vào riêng biệt. Tôi nhận thấy rằng một số giá trị của tôi được thêm vào và một số thì không, và sau khi gỡ lỗi một lúc, tôi không chắc chắn vấn đề là gì. Ai đó có thể làm sáng tỏ một chút ánh sáng? Cảm ơn.So sánh hai Danh sách <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ạn có thể đăng kết quả mong đợi không? –
Tôi nghĩ bạn đang xóa nhóm [b] sớm. Bởi vì các công trình của bạn như thế này A1 -> B 1 2 3 4 5 6 7 vv, A2 -> b1 2 3 4 5.Nếu bạn loại bỏ một số từ b, nó sẽ không thể hiển thị trong dups hoặc khác biệt. Nhưng đó chỉ là bản năng của tôi. :) –
Bạn đang xóa các phần tử khỏi danh sách trong khi lặp lại chúng, do đó các điều kiện vòng lặp (dựa trên số phần tử) có thể bị xâm phạm ... – digEmAll