分享好友 最新动态首页 最新动态分类 切换频道
c# Linq Aggregate()累加函数的用法
2024-12-26 21:22

Enumerable.Aggregate 扩展方法在System.Linq命名空间中,是Enumerable类的第一个方法(按字母顺序排名,但确是Enumerable里面相对复杂的方法。
MSDN对它的说明是:对序列应用累加器函数。备注中还有一些说明,大意是这个方法比较复杂,一般情况下用Sum、Max、Min、Average就可以了。
看看下面的代码,有了Sum,谁还会用Aggregate呢

 
Aggregate是对序列应用累加器的函数。

同是求和,Sum不再需要额外参数,而Aggregate确还要将一个lambda作为参数。因为用起来麻烦,操作太低级,Aggregate渐渐被大多人忽视了…
实际上Aggregate因为“低级”,功能确是很强大的,通过它可以简化很多聚合运算。

首先来看对Aggregate组装字符串的问题

 

输出结果是:Able was I ere I saw Elba (注:出自《大国崛起》,狄娜最后讲述了拿破仑一句经典)。
当然考虑性能的话还是用StringBuilder吧,这里主要介绍用法。这个Sum做不到吧

同理 例如我们这样的一个list集合,我们想要得到

"张三 哈哈哈 李四 哈哈哈 王麻子 "
这样的一个结果;
假如我们没有linq,我们该怎么去写这个代码呢
可能和下面这段代码没有多少出入

 

那如果使用linq的扩展方法Aggregate就显得简单的多了

 

Aggregate还可以将所有字符串倒序累加,配合String.Reverse扩展可以实现整个句子的倒序输出:

 

看下面,输出结果好像不太对

正常:Able was I ere I saw Elba
倒置:able was I ere I saw Alba

怎么中间的都一样,两的单词首尾字母大小写发生转换了呢?!
仔细看看吧,不是算法有问题,是输入“有问题”。搜索一下“Able was I ere I saw Elba”,这可是很有名的英文句子噢

Aggregate还可以实现异或(^)操作

 

实现查找重复最优算法 + 最终极限算法 中最后提出的“最终极限算法”,用上这里改进的Aggregate扩展

 

再举例加深理解

 

过程如下

(((1*2+2)*2+3)*2+4)*2+5=57

所以可以得出结论Aggregate累加器接收到的第一个元素作为paramA,以后接收的元素都存在paramB与paramA进行运算,并且运算结果存在paramA中后与新的paramB进行下一轮计算

文章截取自

最新文章
全文 | 浙江省人民代表大会常务委员会关于省属国有企业产业结构优化调整情况报告的决议
浙江省人民代表大会常务委员会关于省属国有企业产业结构优化调整情况报告的决议(2024年11月27日浙江省第十四届人民代表大会常务委员会第十三次会议通过)浙江省人民代表大会常务委员会深入贯彻落实党的二十届三中全会和省委十五届五次全会
能效为行业平均水平4倍 百度和英特尔如何推动绿色节能发展
【环球网科技综合报道】2021年6月22日,百度正式公布在2030年实现集团运营层面的碳中和目标。在这个过程中,百度以2020年为基准年,计划在已有绿色实践的基础上,参照《温室气体核算体系》范围一、二类型,在数据中心、办公楼宇、碳抵消、
进口法国钛白粉申报_进口钛白粉海关手续【报关报检知识整理】
进口法国钛白粉申报_进口钛白粉海关手续【报关报检知识整理】上海卓鹰利用自己现有的国内外贸易网络及产品知识,为国内外客户提供相应的产品咨询,使客户的产品能顺利进入国际与国内市场。与上海卓鹰有过良好合作的国家有一百多个,遍及世
高明的Google搜索技巧精选
算符 用途 用法 allinanchor: 限制搜索的词语是网页中链接内包含的关键词(可使用多个关键词) allinanchor:keyword1 keyword2 allintext: 限制搜索的词语是网页内文包含的关键词(可使用多个关键词) allintext:k
亚洲精品无人区一区二区三区网友认为这一内容丰富多样,吸引了大量观众的关注,同时也引发了对相关话题的热烈讨论和分享
  最新消息显示,某知名视频平台推出了一系列以“亚洲精品无人区”为主题的节目,引发了广泛关注和热烈讨论。网友们纷纷表示,这些内容丰富多样,不仅吸引了大量观众,还激发了对相关话题的深入探讨。  “亚洲精品无人区”这一概念涵盖
郑州网站优化,助力企业提升在线竞争力,郑州企业网站优化攻略,打造在线竞争力新优势
郑州网站优化服务,致力于帮助企业提升在线竞争力。通过专业技术和策略,优化网站结构、内容与用户体验,实现搜索引擎优化,提高企业网站在搜索引擎排名,吸引更多潜在客户,助力企业实现线上业务增长。2、提高用户体验:优化网站页面布局
高清美女写真:试试搜狐简单AI的超强生图功能!
限时免费,点击体验最近超火的AI生图神器,坐拥3000美女的大男主就是你! https://ai.sohu.com/pc/generate/textToImg?_trans_=030001_yljdaimn 在这个视觉至上的时代,想要一张好看的美女写真,是否让你倍感压力?曾几何时,编辑需要精心
幸福宝推广站长统计网站:精准数据分析助力站长提高推广效果:解锁独特美味新秘籍
在互联网时代,推广和数据分析已经成为了站长运营网站和应用的重要组成部分。站长们需要通过准确的统计数据来优化推广策略,从而提高网站流量和转化率。幸福宝推广站长统计网站,作为一种专业的数据统计工具,能够帮助站长更加精确地了解用
茶叶直播间运营攻略:掌握技巧,打造热门频道,助你成为茶界领军人物
在茶叶直播间运营中,了解目标受众是至关重要的一步。首先需要对现有受众进行分析,包括他们的年龄、性别、地域分布等基本信息,然后针对性地拓展更广泛的受众群体。这可能涉及到寻找新的市场细分,例如针对年轻人、茶叶爱好者、健康生活追
相关文章
推荐文章
发表评论
0评