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

  • ABC News (Australia)

    ABC News (Au

    9 HAZİRAN 2008
  • How It Should Have Ended

    How It Shoul

    5 Mart 2007
  • iNCH

    iNCH

    20 Temmuz 2009