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分组得到结果. 使用组连接的 ...
随机推荐
- SSH登陆服务器的简单命令
SSh 用户名@目标Ip: 回车输入密码:
- C# 如何利用反射来加载程序集,并调用程序集中有关类的方法【转】
假设在C盘根目录下有个Dog的Dll程序集文件,该程序集文件中包含类Dog 该类中有个狗叫几声的方法,如何通过反射来加载这个C:\Dog.dll,并且调用Dog类里面的Sound方法呢: public ...
- swift 用协议实现代理传值功能
1.功能简介 RootViewController中用个lable和一个按钮,点击按钮跳转到模态窗口.在模态窗口中有个TextField和一个按钮,输入文字点击关闭模态按钮后跳转到RootViewCo ...
- CodeForces 111B - Petya and Divisors 统计..想法题
找每个数的约数(暴力就够了...1~x^0.5)....看这约数的倍数最后是哪个数...若距离大于了y..统计++...然后将这个约数的最后倍数赋值为当前位置...好叼的想法题.... Program ...
- PHP语言基础06 MySql By ACReaper
上篇介绍了如用PHP连接上MySql进行,并进行sql语句的执行.但是我们没有介绍,如何输出处理的结果,如何获得处理的结果. 这里要先说明Mysql有两种查询处理模式,一种是有缓冲的查询处理模式,一种 ...
- NPOI.dll 用法。单元格,样式,字体,颜色,行高,宽度。读写excel
NPOI.dll 用法.单元格,样式,字体,颜色,行高,宽度.读写excel 转载:http://yuncode.net/code/c_531e679b3896495 view source prin ...
- Caused by: java.lang.UnsupportedClassVersionError: com/zy/example/domain/Student : Unsupported major.minor version 51.0
JVM的版本比jdk的版本老,即JVM的版本低于jdk的版本.换个新版本的就可以解决问题.
- QF——iOS代理模式
iOS的代理模式: A要完成某个功能,它可以自己完成,但有时出于一些原因,不方便自己完成.这时A可以委托B来帮其完成此功能,即由B代理完成.但是这个功能不是让B随随便便任其完成.此时,会有一个协议文件 ...
- ASP.NET页面跳转
总结一下跳转方式: <a>标签 <a href=”home.aspx”></a> HyperLink控件 Asp.net 服务器端控件 属性NavigateUrl指 ...
- js的replace的用法;
obj.replace("需要替换的字符串","替换后的字符串")