using System;using System.Collections.Generic;
using System.Linq;
namespace ConsoleApplication1d
{
class CTX
{
public int id = ;
public string name = "rich";
public int age = ;
public CTX(int id)
{
this.id = id;
}
}
class Test
{
delegate List<int> EvenCheck(List<int> lst);
public static void Main()
{
List<int> lst = new List<int>() { , , , , , , , , }; //List初始化器
Dictionary<int, CTX> dict = new Dictionary<int, CTX>()//Dictionary初始化器
{
{, new CTX() {name = "Tom" } },//对象的初始化器
{
,
new CTX() {age = , id = , name = "unknown" } //对象的初始化器
}
}; //Func<T> 系统定义的委托,参数数目可变, 至少二个参数,最后一个为返回值类型,其余为输入参数类型
Func<int, int> fdg = p => p + ;
Console.WriteLine(fdg());//
Func<int, int, string> fadg = (p, q) => (p + q).ToString();
Console.WriteLine(fadg(-, -));//-30 EvenCheck eck = p => //委托中的lambda,相当于一个匿名函数,参数为p, 返回值为list<int>,符合EvenCheck的委托类型,因此可直接赋值
{
List<int> tlst = new List<int>();
foreach(var e in p)
{
if (e % == )
tlst.Add(e);
} return tlst;
}; List<int> lst2 = lst.Where(p => p % == ).ToList(); //条件表达式中的lambda,Where参数为Func<int, int>,因此可用lambda
List<int> lst3 = eck(lst);
int lx = lst3.SingleOrDefault(p => p == ); //条件表达式中的lambda lst3 = lst3.OrderBy(p => p).ToList(); //升序,OrderBy参数为Func<int, int>,因此可用lambda
lst3 = lst3.OrderByDescending(p => p).ToList();//降序,OrderByDescending参数为Func<int, int>,因此可用lambda
lst3.Sort();//升序 foreach(var l in lst3)
{
Console.Write(l +" ");
}
Console.WriteLine();
}
}
}

C# lambda表达式及初始化器的更多相关文章

  1. 全新升级的AOP框架Dora.Interception[4]: 基于Lambda表达式的拦截器注册方式

    如果拦截器应用的目标类型是由自己定义的,Dora.Interception(github地址,觉得不错不妨给一颗星)可以在其类型或成员上标注InterceptorAttribute特性来应用对应的拦截 ...

  2. 【C++】C++中的lambda表达式和函数对象

    目录结构: contents structure [-] lambda表达式 lambda c++14新特性 lambda捕捉表达式 泛型lambda表达式 函数对象 函数适配器 绑定器(binder ...

  3. Java 8中Lambda表达式默认方法的模板方法模式,你够了解么?

    为了以更简单的术语描述模板方法,考虑这个场景:假设在一个工作流系统中,为了完成任务,有4个任务必须以给定的执行顺序执行.在这4个任务中,不同工作流系统的实现可以根据自身情况自定义任务的执行内容. 模板 ...

  4. C#高级知识点概要(3) - 特性、自动属性、对象集合初始化器、扩展方法、Lambda表达式和Linq查询

    1.特性(Attributes) 特性(Attributes),MSDN的定义是:公共语言运行时允许你添加类似关键字的描述声明,叫做attributes, 它对程序中的元素进行标注,如类型.字段.方法 ...

  5. .NET中那些所谓的新语法之一:自动属性、隐式类型、命名参数与自动初始化器

    开篇:在日常的.NET开发学习中,我们往往会接触到一些较新的语法,它们相对以前的老语法相比,做了很多的改进,简化了很多繁杂的代码格式,也大大减少了我们这些菜鸟码农的代码量.但是,在开心欢乐之余,我们也 ...

  6. .NET中那些所谓的新语法之三:系统预定义委托与Lambda表达式

    开篇:在上一篇中,我们了解了匿名类.匿名方法与扩展方法等所谓的新语法,这一篇我们继续征程,看看系统预定义委托(Action/Func/Predicate)和超爱的Lambda表达式.为了方便码农们,. ...

  7. Java8初体验(一)lambda表达式语法

    感谢同事[天锦]的投稿.投稿请联系 tengfei@ifeve.com 本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘.因为本人也是刚刚开始学习Java8,所以文中肯定有错误和理解 ...

  8. 16.C#初见Lambda表达式及表达式树(九章9.1-9.3)

    在说明Lambda相关知识前,我们需要了解Lambda表达式常用于LINQ,那么我们来聊下LINQ. LINQ的基本功能就是创建操作管道,以及这些操作需要的任何状态.这些操作表示了各种关于数据的逻辑: ...

  9. Linq之隐式类型、自动属性、初始化器、匿名类

    目录 写在前面 系列文章 隐式类型 自动属性 初始化器 匿名类 总结 写在前面 上篇文章是本系列的小插曲,也是在项目中遇到,觉得有必要总结一下,就顺手写在了博客中,也希望能帮到一些朋友.本文将继续介绍 ...

随机推荐

  1. 【转】Visual Studio项目相对路径的设置,实用

    这篇文章主要写给那些以前没有用过VS的新手,同时也是自己学习经验的积累,高手就不用看了以免浪费您宝贵的时间. 在VS的工程中常常要设置头文件的包含路径,当然你可以使用绝对路径,但是如果你这样设置了你只 ...

  2. MacOs终端忽略大小写

    使用MacOs的终端时,唯一让人感觉不爽的就是Tab补全是区分大小的,所以查了资料就把这个问题搞定了.在用户目录下创建 .inputrc 文件,内容为以下三行代码,保存后重启终端再次输入文件名Tab补 ...

  3. RxJava结合Retrofit和Volley简单比较

    通过使用Retrofit+RxJava和Volley获取知乎日报消息,比较两者的使用区别. 文中 RR:代指Retrofit+Rxjava 主要两个方面使用 使用两者获取Json数据,使用Gson解析 ...

  4. Navicat 连接 Oracle数据库 提示 cannot load OCI DLL 的解决

    一.32位系统下 cannot load OCI DLL,126 解决方法:工具->选项->OCI 选择oracle安装目录下bin里面的oci.dll 二 .在64位系统下安装了Orac ...

  5. swipe js dynamic content

    swipe js dynamic content swipe 动态改变内容时,需要用 update 一下. swiper.update(true); 实例: HTML Code  页面用的FreeMa ...

  6. linux crontab & 每隔10秒执行一次

    linux下定时执行任务的方法  在LINUX中你应该先输入crontab -e,然后就会有个vi编辑界面,再输入0 3 * * 1 /clearigame2内容到里面 :wq 保存退出. 在LINU ...

  7. debian7 请把标有“Debian GNU/Linux 7.1.0 _Wheezy_ - Official amd64 DVD Binary-1 20130615-23:06”的盘片插入驱动器“/media/cdrom/”再按回车键

    有时候,在通过apt-get install 安装软件的时候,会出现: 更换介质:请把标有“Debian GNU/Linux 7.1.0 _Wheezy_ - Official amd64 DVD B ...

  8. Android Design Support Library——Floating Action Button

    Floating Action Button是一种悬浮操作的圆形按钮,继承自ImageView,可以通过android:src或者ImageView的任意方法,来设置FloatingActionBut ...

  9. Effective Java 61 Throw exceptions appropriate to the abstraction

    Exception translation: higher layers should catch lower-level exceptions and, in their place, throw ...

  10. 【故障处理】IMP-00010错误 12C的dmp文件导入11G

    [故障处理]IMP-00010错误 12C的dmp文件导入11G 1  BLOG文档结构图 2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其 ...