LINQ中的Aggregate语法
这个语法可以做一些复杂的聚合运算,例如累计求和,累计求乘积。它接受2个参数,一般第一个参数是称为累积数(默认情况下等于第一个值),而第二个代表了下一个值。
第一次计算之后,计算的结果会替换掉第一个参数,继续参与下一次计算。
下面是我写的一个简单范例,使用Aggregate语法做阶乘运算。
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { var numbers = GetArray(5); var result = (from n in numbers select n).Aggregate( (total, next) => { return total * next; }); Console.WriteLine("5的阶乘为:{0}",result);//返回120,也就是1*2*3*4*5 } static IEnumerable<int> GetArray(int max) { List<int> result = new List<int>(max); for (int i = 0; i < max; i++) { result.Add(i+1); } return result; } } }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步