LINQ öğreniyorum ve teknolojiyi daha iyi anlamama yardımcı olacağını düşündüğüm çok basit bir soru var. Bir dizi dizinin ürününü nasıl bulabilirim? Bu çalışacakÜrünü LINQ ile hesaplayın
int[] vals = { 1, 3, 5 };
return vals[0] * vals[1] * vals[2];
LINQ öğreniyorum ve teknolojiyi daha iyi anlamama yardımcı olacağını düşündüğüm çok basit bir soru var. Bir dizi dizinin ürününü nasıl bulabilirim? Bu çalışacakÜrünü LINQ ile hesaplayın
int[] vals = { 1, 3, 5 };
return vals[0] * vals[1] * vals[2];
:
var product = vals.Aggregate(1, (acc, val) => acc * val);
Sen 1
bir tohum ile başlıyoruz ve ardından işlev her biri için çağrılır
yapmak LINQ yolu nedir Değerlerinizin iki bağımsız değişkenle, mevcut birikmiş değer olan acc
ve dizideki değer olan val
; işlev, mevcut birikmiş değeri dizi içindeki değere çarpar ve bu ifadenin sonucu bir sonraki işleve acc
olarak iletilir. Yani sağladığınız dizi ile fonksiyon çağrıları zinciri:
(1, 1) => 1
(1, 3) => 3
(3, 5) => 15
+1. var yerine int kullanmasını öneririz. –
Var'ın kullanımı bir kişisel/takım kararıdır. Şahsen ben tip bilgisinin muazzam derecede faydalı olduğunu düşünmüyorum ve sizi kodun * amacından * uzaklaştırıyorum. Bu konuda şunları yazdım: http://gregbeech.com/blogs/tech/archive/2008/03/24/to-var-or-not-to-var-implicit-typing-is-the-question.aspx –
Yani Agrega bu şekilde çalışır. Bu inanılmaz derecede yararlı görünüyor, daha önce bunu nasıl yapacağımı öğrenmediğime inanamıyorum. –