关于 Linq 中的 Aggregate 扩展方法的实例
2011-06-15 11:55
501 查看
代码胜过一切说明:
运行结果:
谢谢浏览!
using System; using System.Collections.Generic; using System.Linq; namespace ConAppTestDemo { 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; }); //通过调试发现,当 n 等于第一个数时,直接赋值:total = n,从第二个数开始,才 return total * next Console.WriteLine("5的阶乘为:{0}", result);//返回120,也就是1*2*3*4*5 var result2 = numbers.Aggregate<int, double>(0.001, (double begin, int next) => { return begin + next; }); Console.WriteLine("有初始值的数加上一个集合所有的数,得到的结果为:{0}", result2);//返回15.001,也就是 0.001+1+2+3+4+5 var result3 = numbers.Aggregate<int, string, string>("A&", (string total, int next) => { return total + next + "&"; }, (string tempResult) => { return tempResult + "!"; }); Console.WriteLine("累计后相加得:{0}", result3); //返回A&1&2&3&4&5&!,也就是 A& + 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; } } }
运行结果:
谢谢浏览!
相关文章推荐
- C#中的扩展方法,Linq,IO和多线程的定义和实例
- Linq扩展方法之Aggregate 对序列应用累加器函数
- 关于LINQ扩展方法
- 一个利用扩展方法的实例:AttachDataExtensions 转自 博客园 JeffreyZha
- 一次错误的总结(关于:在实例方法和类方法公用一段代码)
- Linq快速入门——扩展方法
- 关于ASP无组件上传文件时 中文 双引号 无法取得 文件名 扩展名 解决方法
- 关于"如何让应用程序只有一个实例在运行"的孟宪会的解决方法的疑问
- C#基础:通过一个实例来学习IFormattable接口,扩展方法
- 关于页面不包含"事件_Click"的定义 并且找不到可接受页面类型的第一个参数的扩展方法"事件_Click" 的解决方案
- 关于C#中this的一个用法----用于C#原始类型扩展方法
- Linq技术三:Linq to Object 和生成数据表的扩展方法
- 关于使用扩展方法的警告
- jQuery animate()方法详解、实例、扩展(详细版)
- LINQ中的扩展方法
- Stackoverflow 珠玑:用于分组的 LINQ 扩展方法
- linq 扩展方法
- C#扩展方法实例分析
- JQ也要面向对象~在JQ中扩展静态方法和实例方法
- 处理Clob数据(转)关于oracle中大对象处理的一些方法和实例