2010-10-12 18 views
13

LINQ ve Lambda İfadesinin Performansıyla ilgili bir tartışmaya ihtiyacım var.Karşılaştırma: LINQ vs LAMBDA Expression

Hangisi daha iyi? LINQ hakkında konuştuğunuzda query expression anlamına geldiğinizi tahmin ediyorum.

+4

Burada http://stackoverflow.com/ bakmak isteyebilirsiniz Sorular/1182922/ne-verimlilik ve performans-of-linq-ve-lambda-in-the-net –

cevap

34

Bunlar eşdeğerdir. Derleyici, derlemeden önce query expression eşdeğer Lambda ifadesine dönüştürür, böylece oluşturulan IL tam olarak aynıdır.

var result = select s from intarray 
      where s < 5 
      select s; 

O geçirilmeleri: Örnek

var result = select s from intarray 
      where s < 5 
      select s + 1; 

böyle sorgu ifadesini yazarsanız aynen

var result = intarray.Where(s => s < 5).Select(s => s+1); 

Not aynıdır

var result = intarray.Where(s => s < 5); 

Seçime son çağrı, çünkü gereksizdir. Reflektörde hızlı bir karşılaştırma muhtemelen hile yapacaktır.

+3

Ben de aynı düşünürdüm, ama, bu siteye göre (http: // blog. thijssen.ch/2009/02/linq-vs-lambda-vs-loop-performance-test.html), Lambda ifadeleri daha hızlı çalışır. Test işlevini test etmek için bir uygulamaya kopyaladım ve bu sitedeki bulguları doğruladı. –

+1

Bu sadece Lambda ifadelerini öğrenmek anlamına mı geliyor? –

+1

'sorgu ifadesi' özellikle yeni ppl için daha okunabilir – om471987

4

Ancak, bir 'tercih' bakış açısından, lambda ifadelerini, nesneler, xml ya da her ne olursa olsun, yazı tahtasından takip etmek ve yazmak ve kullanmak için daha kolay buluyorum.

Eğer performans göz ardı edilebilir ise, sizin için en uygun olanla giderim.

i aslında ilgisini çekebilecek linq yöntemlerine bakarak biraz konu dışı başladı:

What's your favourite linq method or 'trick'

şerefe ..