2011-03-09 19 views
10

El ile arama yapmak ve kullanmak, Join veya GroupJoin ile bir bağlantı kullanarak LINQ içinde yerel bir IEnumerable<T> dizisi daha hızlı bir şekilde yaklaşıyor mu?LINQ'a katılmak için manuel arama avantajları?

Derleyicinin aslında Join ve GroupJoin iç dizisini zaten ILookup<T>'a çevirdiği bir yeri okuyorum.

ILookup<T>'un yararları ne kadardır?

+2

Soru ilginç olsa da, bana erken bir optimizasyon gibi görünüyor. Yazmakta olduğunuz kod performans açısından kritik öneme sahipse, onu izlemelisiniz. Yeterince hızlıysa, bir sonraki görevle devam edin. – Steven

+0

Bazı örnek kodlar sorunuzu daha net hale getirebilir. –

+0

@Stephen - Böyle bir yaklaşımın artılarını ve eksilerini çözmeyi deniyordum ve burada gerçek birleşimin bir aramaya çevrildiğini belirttiysem – TheBoyan

cevap

5

Bu, bağlıdır. DataContext tabanlı olan nesnelerle çalışıyorsanız, birleştirme, select deyimi aracılığıyla SQL sunucusuna tüm yol aşağıya çevrilir. Eğer bir POCO'su (ya da daha özel olarak bir Plain Old CLR koleksiyonu) ya da başka bir şey ise, o zaman evet, ILookup olarak kullanılır.