SORU
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:

  1. göstermek eşyalar ikinci listede ilk sırada değil
  2. 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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bmarian22

    bmarian22

    22 Aralık 2007
  • Pepsi

    Pepsi

    1 Kasım 2005
  • sinumatic

    sinumatic

    19 Aralık 2006