namespace 匿名函数
{
/// <summary>
/// 语法之进化论
/// </summary>
class Program
{
delegate bool MetherdDeleget(string pStr);
static void Main(string[] args)
{
//m指向匿名函数 delegate(参数列表) {方法体 };
MetherdDeleget m = delegate(string s) { Console.WriteLine(s); return false; };
m("匿名函数");
//lambda
MetherdDeleget m1 = (s) => { Console.WriteLine(s); return false; };
m("lambda");
//进一步1:
MetherdDeleget m2 = (s) => { return s=="tom"; };
Console.WriteLine(m2("tom"));
//当方法体只有一句话,且有返回值时,写法上可以进一步简化:
//甚至如果只有一个参数的话() 也不必写
MetherdDeleget m3 = (s) => s == "tom";
Console.WriteLine(m3("tom"));
//////////list的复杂类型排序///////////////////
List<Person> plist = new List<Person>();
plist.Add(new Person() { Name = "tom", Age = });
plist.Add(new Person() { Name = "jim", Age = });
plist.Add(new Person() { Name = "aaa", Age = });
plist.Add(new Person() { Name = "bbb", Age = });
plist.Add(new Person() { Name = "ccc", Age = });
plist.Add(new Person() { Name = "ddd", Age = });
foreach(Person eachp in plist.OrderBy(p=>p.Age))
{
Console.WriteLine("名字:{0} 年龄:{1}",eachp.Name,eachp.Age);
}
foreach (Person eachp in plist.OrderByDescending(p => p.Age))
{
Console.WriteLine("名字:{0} 年龄:{1}", eachp.Name, eachp.Age);
} Console.ReadKey();
} }
class Person
{
public string Name { set; get; }
public int Age { set; get; }
}
}

转至 杨中科教程

语法之进化论之lambda表达式的更多相关文章

  1. Kotlin语法(函数和lambda表达式)

    三.函数和lambda表达式 1. 函数声明 fun double(x: Int): Int { } 函数参数是用 Pascal 符号定义的 name:type.参数之间用逗号隔开,每个参数必须指明类 ...

  2. Lambda表达式的语法与如何使用Lambda表达式

    Lambda表达式是对象,是一个函数式接口的实例 如何来写Lambda表达式? 看参数 看返回值 代码实例1: package day2; import jdk.nashorn.internal.co ...

  3. Java 8新特性:新语法方法引用和Lambda表达式及全新的Stream API

    新语法 方法引用Method references Lambda语法 Lambda语法在AndroidStudio中报错 Stream API 我正参加2016CSDN博客之星的比赛 希望您能投下宝贵 ...

  4. java新的语法糖:Java 8 Lambda表达式

    ***************************************************************************

  5. Lambda表达式概念与基本语法

    Lambda表达式是Java 8的重要更新,一个被广大开发者期待已久的新特性.Lambda表达式支持将代码块作为方法参数,Lambda表达式允许使用更简洁的代码来创建只有一个抽象方法的接口(这种接口被 ...

  6. java8 Lambda表达式的新手上车指南(1)--基础语法和函数式接口

    背景 java9的一再推迟发布,似乎让我们恍然想起离发布java8已经过去了三年之久,java8应该算的上java语言在历代版本中变化最大的一个版本了,最大的新特性应该算得上是增加了lambda表达式 ...

  7. JDK8新特性02 Lambda表达式02_Lambda语法规则

    //函数式接口:只有一个抽象方法的接口称为函数式接口. 可以使用注解 @FunctionalInterface 修饰 @FunctionalInterface public interface MyF ...

  8. 【Java8新特性】Lambda表达式基础语法,都在这儿了!!

    写在前面 前面积极响应读者的需求,写了两篇Java新特性的文章.有小伙伴留言说:感觉Lambda表达式很强大啊!一行代码就能够搞定那么多功能!我想学习下Lambda表达式的语法,可以吗?我的回答是:没 ...

  9. Lambda 表达式的基础语法

    1.基础语法 java8引入新的操作符"->"箭头操作符,箭头操作符将Lambda表达式分成两部分 左侧:Lambda 表达式的参数列表,对应抽象方法的参数列表 右侧:需要执 ...

随机推荐

  1. Apache POI 示例

    Apache POI 3.17 Javadocs 用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office(Excel.WO ...

  2. Redisson实现分布式锁

    转: Redisson实现分布式锁 Redisson文档参考:https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95 redis是实现 ...

  3. ECharts将折线变平滑和去掉点的属性

    eries : [ { name:'your name', symbol:'none', //这句就是去掉点的 smooth:true, //这句就是让曲线变平滑的 type:'line', stac ...

  4. vue(初探预渲染)

    ---恢复内容开始--- 一.前言 1.简介预渲染                     2.案例演示(不配置预渲染)                     3.配置预渲染, 二.主要内容 1.简 ...

  5. rocketmq 启动和停止命令

    A启动server: nohup sh mqnamesrv &A启动broken: nohup sh mqbroker -c /opt/rocketmq432/conf/2m-noslave/ ...

  6. Word转PDF(SaveAsPDFandXPS + jacob)

    Windows系统下 1.下载所需插件和jar包 SaveAsPDFandXPS(微软自带office转PDF.XPS):http://www.microsoft.com/zh-cn/download ...

  7. python3 两层dict字典转置

    python3; 两层字典 dict =(type, dict2) dict2 = (k_value, index) dictss = { 10: {3: 1, 4: 2, 5: 3, 6: 4, 7 ...

  8. 【sql server】备份集中的数据库与现有数据库不同 解决方案

    #事故现场: 在进行sql server 数据库还原的时候,报错如下: #解决方案: _________________________________________________________ ...

  9. OpenCV初步

    目录 一 写在开头 1.1 本文内容 二 涉及的API 三 OpenCV 3.4.2在Ubuntu 16.04 LTS下的编译安装 四 OpenCV安装测试与图像的加载和显示 4.1 安装测试 4.2 ...

  10. C# 01 Primitive Types and Expressions

    Class Data or Attributes state of the application Methods or Functions have behavior Namespace is a ...