LINQ中的Aggregate用法总结
Aggregate这个语法可以做一些复杂的聚合运算,例如累计求和,累计求乘积。它接受2个参数,一般第一个参数是称为累积数(默认情况下等于第一个值),而第二个代表了下一个值。第一次计算之后,计算的结果会替换掉第一个参数,继续参与下一次计算。
一、Aggregate用于集合的简单的累加、阶乘
.using System;
.using System.Linq;
.
.class Program
.{
.static void Main()
.{
.int[] array = { , , , , };
.int result = array.Aggregate((a, b) => b + a);
.// 1 + 2 = 3
.// 3 + 3 = 6
.// 6 + 4 = 10
.// 10 + 5 = 15
.Console.WriteLine(result);
.
. result = array.Aggregate((a, b) => b * a);
.// 1 * 2 = 2
.// 2 * 3 = 6
.// 6 * 4 = 24
.// 24 * 5 = 120
.Console.WriteLine(result);
.}
.}
输出结果:
二、Aggregate,在字符串中反转单词的排序
.string sentence = "the quick brown fox jumps over the lazy dog";
.string[] words = sentence.Split(' ');
.string reversed = words.Aggregate((workingSentence, next) =>
. next + " " + workingSentence);
.Console.WriteLine(reversed);
三、使用 Aggregate 应用累加器函数和结果选择器
.string[] fruits = { "apple", "mango", "orange", "passionfruit", "grape" };
.string longestName =
. fruits.Aggregate("banana",
.(longest, next) =>
. next.Length > longest.Length ? next : longest,
. fruit => fruit.ToUpper());
.Console.WriteLine(
."The fruit with the longest name is {0}.",
. longestName);
四、使用 Aggregate 应用累加器函数和使用种子值
.int[] ints = { , , , , , , , , };
.
.//统计一个数组中偶数的个数,种子值设置为0,找到偶数就加1
.int numEven = ints.Aggregate(, (total, next) =>
. next % == ? total + : total);
.
.Console.WriteLine("The number of even integers is: {0}", numEven);
输出结果:
The number of even integers is: 6
除此之外LINQ中的Aggregate还可以用于递归调用。
LINQ中的Aggregate用法总结的更多相关文章
- Linq 中 Join 的用法
Linq中连接主要有组连接.内连接.左外连接.交叉连接四种.各个用法如下. 注:本文内容主要来自<Linq实战>,本例中用到的对象请见文章底部. 1. 组连接 组连接是与分组查询是一样的. ...
- linq中join的用法
join方法 public static IEnumerable<TResult> Join<TOuter, TInner, TKey, TResult>( this IEnu ...
- Linq中常用语法
using System;using System.Collections.Generic;using System.ComponentModel.Design;using System.Linq;u ...
- Linq中关键字的作用及用法
Linq中关键字的作用及用法 1.All:确定序列中的所有元素是否都满足条件.如果源序列中的每个元素都通过指定谓词中的测试,或者序列为空,则为 true:否则为 false. Demo: 此示例使用 ...
- Linq中join & group join & left join 的用法
Linq中join & group join & left join 的用法 2013-01-30 11:12 12154人阅读 评论(0) 收藏 举报 分类: C#(14) 文章 ...
- 简述Linq中.ToList(), .AsEnumerable(), AsQueryable()的区别和用法
[TOC] 这3个方法的功能完全不同, 应按照具体业务场景使用. AsQueryable() 先说说什么是 IQueryable IQueryable 是当前的 data provider 返回的类型 ...
- Linq中 AsQueryable(), AsEnumerable()和ToList()的区别和用法
Linq中 AsQueryable(), AsEnumerable()和ToList()的区别和用法:在写LINQ语句的时候,往往会看到AsEnumerable() ,AsQueryable() 和T ...
- MVC+Spring.NET+NHibernate .NET SSH框架整合 C# 委托异步 和 async /await 两种实现的异步 如何消除点击按钮时周围出现的白线? Linq中 AsQueryable(), AsEnumerable()和ToList()的区别和用法
MVC+Spring.NET+NHibernate .NET SSH框架整合 在JAVA中,SSH框架可谓是无人不晓,就和.NET中的MVC框架一样普及.作为一个初学者,可以感受到.NET出了MV ...
- LINQ中的连接(join)用法示例
Linq中连接主要有组连接.内连接.左外连接.交叉连接四种.各个用法如下. 1. 组连接 组连接是与分组查询是一样的.即根据分组得到结果. 如下例,根据publisther分组得到结果. 使用组连接的 ...
随机推荐
- js计算时间差,包括计算,天,时,分,秒
收集两个计算时间差的计算方法代码片段: var date1=new Date(); //开始时间 var date2=new Date(); //结束时间 var date3=date2.getTim ...
- 浅谈hadoop中mapreduce的文件分发
近期在做数据分析的时候.须要在mapreduce中调用c语言写的接口.此时就须要把动态链接库so文件分发到hadoop的各个节点上,原来想自己来做这个分发,大概过程就是把so文件放在hdfs上面,然后 ...
- oracle 物化视图导入导出报错
1.exp导出报EXP-00008: 遇到 ORACLE 错误 1455,ORA-01455: 转换列溢出整数数据类型 2.imp导入报.注: 表包括 ROWID 列, 其值可能已废弃,不是警告也不是 ...
- hadoop记录topk
lk@lk-virtual-machine:~$ cd hadoop-1.0.1 lk@lk-virtual-machine:~/hadoop-1.0.1$ ./bin dfs -mkdir inpu ...
- 9大理由告诉你为什么应该学习HTML跟CSS
你是不是听过太多人告诉你:「人人都应该要会 coding!」都快要不耐烦了对吧? 究竟为什么身为一个行销专业者.作家.金融巨擘--,整个世界还要你学会 coding? 事实上仅仅要对 HTML.CSS ...
- Android App开之标注切图
身为一个android开发狗,真是艰辛啊,适配不好做,Rom特性不好搞,连切图有时候都得自己上啊,设计师MM都不敢去惹呢,新技能Get开始. 其实,都是小case了,我有度娘和谷哥! 因为,有了psd ...
- hadoop 学习
不同版本间Hadoop拷贝 通过NFS,将hdfs挂在到本地
- 利用oxygen编辑并生成xml文件,并使用JAVA的JAXB技术完成xml的解析
首先下载oxygen软件(Oxygen XML Editor),目前使用的是试用版(可以安装好软件以后get trial licence,获得免费使用30天的权限,当然这里鼓励大家用正版软件!!!) ...
- C++网络爬虫抓取图片
1.首先取一个初始网页,例如百度图片里面的网页(假设url为 http://image.baidu.com/channel/fashion ): 2.向image.baidu.com发送一个请求(GE ...
- nginx代理配置
server { listen 80; server_name api.colortrip.cn; client_max_body_size 10m; a ...