Linq Aggregate的三种用法

            int i = 10;
            int[] numbers = { 1, 2, 3 };
            // 1+2+3 = 6
            int a = numbers.Aggregate((prod, n) => prod + n);
            // 10+1+2+3 = 16
            int b = numbers.Aggregate(i, (prod, n) => prod + n);
            // (10+1+2+3)*2 = 32
            int c = numbers.Aggregate(i, (prod, n) => prod + n , r => (r * 2));

 

 

Aggregate的第一个参数是算法的种子,即初始值。第二个参数是一个表达式,用来对每个元素进行计算(委托第一个参数是累加变量,第二个参数当前项)。第三个参数是一个表达式,用来对最终结果进行数据转换。

posted on 2015-07-16 16:40  citygs  阅读(466)  评论(0编辑  收藏  举报