9 EKİM 2012, Salı
İki Liste karşılaştırmak için bir yol< hızlı;>
Ne en hızlı (ve en az kaynak yoğun) iki büyük moleküldür (>50.000 maddeler) ve sonuç olarak olanlar gibi iki liste aşağıda:
- göstermek eşyalar ikinci listede ilk sırada değil
- ilk olarak ikinci listede ama ortaya Bu öğe
Şu anda Liste veya İReadOnlyCollection ile çalışan ve seri bir sorguda bu sorunu çözmeye çalışıyorum:
var list1 = list.Where(i => !list2.Contains(i)).ToList();
var list2 = list2.Where(i => !list.Contains(i)).ToList();
Ama bu istediğim kadar iyi yapmaz. Daha hızlı ve daha az kaynak bu listeler bir sürü işlem gerekiyor gibi yoğun bir hale ... bir fikriniz var mı?
CEVAP
9 EKİM 2012, Salı
Except
kullanın:
var firstNotSecond = list1.Except(list2).ToList();
var secondNotFirst = list2.Except(list1).ToList();
Aslında bu daha çok az daha hızlı olurdu yaklaşım vardır sanıyorum, ama bu bile olacakkesinlikle(*M N) yaklaşım daha hızlı.
Bunu Paylaş:
Basit ve benzerlik için görüntüleri ka...
Karşılaştırmak için nasıl 2 dosyaları ...
Hızlı bir liste için bir yineleyici dö...
Bir Liste olmadığını kontrol etmek içi...
Nasıl bir liste boyutunu almak için...