这个语法可以做一些复杂的聚合运算,例如累计求和,累计求乘积。他接受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;
                            });

/*
或者:
var result=number.Aggregate(1,(current,next)=>current*next) */
Console.WriteLine("5的阶乘为:{0}",result);//返回120,也就是1*2*3*4*5 /*
如果求和的话写成:
var result=number.Aggregate(0,(current,next)=>current*next) */



List<string> strList = new List<string>() { "zyb","sjn"};
               
var str = strList.Aggregate(string.Empty,(current,item)=>current+string.Format("'{0}',",item)).TrimEnd(',');
 
//或者写为:              
var str2 = (from n in strList select n).Aggregate((current, next) => { return "'"+current+"'" + string.Format(",'{0}'", next); 结果都为:‘zyb’,'sjn'
} 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; } } }

 

相关文章:

  • 2022-01-16
  • 2021-11-06
  • 2022-01-18
  • 2021-06-15
  • 2021-07-21
  • 2022-12-23
  • 2021-12-12
  • 2021-07-08
猜你喜欢
  • 2022-12-23
  • 2022-01-21
  • 2022-02-14
  • 2021-10-14
  • 2022-12-23
  • 2021-12-17
  • 2021-08-03
相关资源
相似解决方案