zoukankan      html  css  js  c++  java
  • 【转】LINQ中的Aggregate语法

    这个语法可以做一些复杂的聚合运算,例如累计求和,累计求乘积。他接受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; } } }
  • 相关阅读:
    Codeforces 514C Watto and Mechanism(字典树)
    计蒜客 直线的交点(计算几何 + 逆序对)
    Codeforces 837D Round Subset(背包)
    计蒜客 商汤科技的行人检测(随机化+计算几何)
    HDU 5893 List wants to travel(树链剖分+线段树)
    操作系统的中断处理
    Linux 安装 webmin
    Fedora 安装 phpMyAdmin(可能只有自己看得懂)
    httpd编译安装php
    IA-32e架构下的内核初始化内存管理
  • 原文地址:https://www.cnblogs.com/zhouyunbaosujina/p/3135045.html
Copyright © 2011-2022 走看看