C# Lambda表达式使用累加器例子

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LambdaSample
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] myIntArray = { 1,2, 3, 4, 5 };
            //累加器计算数组总和
            int result = myIntArray.Aggregate((paramA, paramB) => paramA + paramB);
            int result1 = myIntArray.Aggregate<int>((paramA, paramB) => paramA + paramB);
            int result2 = myIntArray.Aggregate<int, int>(0, (paramA, paramB) => paramA + paramB);
            //递归计算数组总和
            int result3 = count(5);
            Console.WriteLine("The Result is: " + result);
            Console.WriteLine("The Result1 is: " + result1);
            Console.WriteLine("The Result2 is: " + result2);
            Console.WriteLine("The Result3 is: " + result3);

            string[] myStrArray = { "Admin", "Change", "ByPage" };
            //字符串数组拼接
            string strResult = myStrArray.Aggregate((paramA, paramB) => paramA + " " + paramB);
            //字符串数组字符串总长度计算
            int result4 = myStrArray.Aggregate<string, int>(0, (a, b) => a + b.Length);
            //字符串数组拼接2,增加字符串"Some curries: "
            string strResult1 = myStrArray.Aggregate<string, string>("Some curries: ", (a, b) => a + " " + b);
            //字符串数组字符串总长度计算2
            int result5 = myStrArray.Aggregate<string, string, int>("Some curries: ", (a, b) => a + " " + b, a => a.Length);
            Console.WriteLine("The StrResult is: " + strResult);
            Console.WriteLine("The Result4 is: " + result4);
            Console.WriteLine(strResult1);
            Console.WriteLine("The Result5 is: " + result5);
            Console.ReadKey();
        }

        static int count(int n)
        {
            if (n == 1)
            {
                return 1;
            }
            return n + count(n - 1);
        }
    }
}

该例子源代码摘自C#入门经典第5版第14章(387页)

时间: 2025-01-05 16:15:27

C# Lambda表达式使用累加器例子的相关文章

Lambda表达式和表达式树

在C# 2.0中,通过方法组转换和匿名方法,使委托的实现得到了极大的简化.但是,匿名方法仍然有些臃肿,而且当代码中充满了匿名方法的时候,可读性可能就会受到影响.C# 3.0中出现的Lambda表达式在不牺牲可读性的前提下,进一步简化了委托. LINQ的基本功能就是创建操作管道,以及这些操作需要的任何状态.这些操作表示了各种关于数据的逻辑,例如数据筛选,数据排序等等.通常这些操作都是用委托来表示.Lambda表达式是对LINQ数据操作的一种符合语言习惯的表示方式. Lambda表达式不仅可以用来创

Java Lambda表达式入门[转]

原文链接: Start Using Java Lambda Expressions http://blog.csdn.net/renfufei/article/details/24600507 下载示例程序 Examples.zip .原文日期: 2014年4月16日 翻译日期: 2014年4月27日翻译人员: 铁锚简介(译者注:虽然看着很先进,其实Lambda表达式的本质只是一个"语法糖",由编译器推断并帮你转换包装为常规的代码,因此你可以使用更少的代码来实现同样的功能.本人建议不要

Java Lambda 表达式的奇幻之旅

JDK 8 对 Lambda 函数编程的支持,浅的来说无非是引入了一些新的语法结构,是继JDK5 引入的Generics后又一项对大家编码方式的一种革新,如果你不跟上的话,恐怕过段时间,你会认为Java代码成了火星语.深的来说,Java是在语言级进一步支持多核CPU的环境下的并行处理,这在Stream API 中可见一斑,在Java之前,已经有很多主流语言,像 C#和C++,支持Lambda 函数编程,此次Java引入Lambda支持也算后知后觉了. 想在Java中书写Lambda的代码,有两个

Java Lambda表达式入门

原文链接: Start Using Java Lambda Expressions 下载示例程序 Examples.zip . 原文日期: 2014年4月26日 翻译日期: 2014年4月27日 翻译人员: 铁锚 简介 (译者注:虽然看着很先进,其实Lambda表达式的本质只是一个"语法糖",由编译器推断并帮你转换包装为常规的代码,因此你可以使用更少的代码来实现同样的功能.本人建议不要乱用,因为这就和某些很高级的黑客写的代码一样,简洁,难懂,难以调试,维护人员想骂娘.) Lambda表

C#中的Lambda表达式和表达式树

在C# 2.0中,通过方法组转换和匿名方法,使委托的实现得到了极大的简化.但是,匿名方法仍然有些臃肿,而且当代码中充满了匿名方法的时候,可读性可能就会受到影响.C# 3.0中出现的Lambda表达式在不牺牲可读性的前提下,进一步简化了委托. LINQ的基本功能就是创建操作管道,以及这些操作需要的任何状态.这些操作表示了各种关于数据的逻辑,例如数据筛选,数据排序等等.通常这些操作都是用委托来表示.Lambda表达式是对LINQ数据操作的一种符合语言习惯的表示方式. Lambda表达式不仅可以用来创

java 8 中lambda表达式学习

转自 http://blog.csdn.net/renfufei/article/details/24600507 http://www.jdon.com/idea/java/10-example-of-lambda-expressions-in-java8.html Lambda表达式的语法基本语法:(parameters) -> expression或(parameters) ->{ statements; } 下面是Java lambda表达式的简单例子: // 1. 不需要参数,返回值

Java8 Lambda表达式

Lambda表达式是Java SE 8中一个重要的新特性.lambda表达式允许你通过表达式来代替功能接口. lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块).Lambda表达式还增强了集合库. Java SE 8添加了2个对集合数据进行批量操作的包: java.util.function 包以及java.util.stream 包. 流(stream)就如同迭代器(iterator),但附加了许多额外的功能. 总的来说

Java中Lambda表达式的使用

简介(译者注:虽然看着很先进,其实Lambda表达式的本质只是一个"语法糖",由编译器推断并帮你转换包装为常规的代码,因此你可以使用更少的代码来实现同样的功能.本人建议不要乱用,因为这就和某些很高级的黑客写的代码一样,简洁,难懂,难以调试,维护人员想骂娘.)Lambda表达式是Java SE 8中一个重要的新特性.lambda表达式允许你通过表达式来代替功能接口. lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块

Java中Lambda表达式的使用(转)

https://www.cnblogs.com/franson-2016/p/5593080.html 简介(译者注:虽然看着很先进,其实Lambda表达式的本质只是一个"语法糖",由编译器推断并帮你转换包装为常规的代码,因此你可以使用更少的代码来实现同样的功能.本人建议不要乱用,因为这就和某些很高级的黑客写的代码一样,简洁,难懂,难以调试,维护人员想骂娘.)Lambda表达式是Java SE 8中一个重要的新特性.lambda表达式允许你通过表达式来代替功能接口. lambda表达式