//Func用法
public static class FuncDemo{
public static void TestFunc(){
     //数据源
List<User> usList = Five.GetUserList();
//Select是Func的委托
//public delegate TResult Func<in T,out TResult>(T arg); //out TResult可以自定义输出类型,可以有多个输入in T
//usList.Select(new Func<User,TResult>(delegate(User u){
//输出参数,返回值 new Func<User,int> 这里返回int 类型
//}));
//返回int类型的集合
List<int> usAges= usList.Select(new Func<User,int>(
delegate(User u){
return u.Age;
})).ToList();
//输出结果
usAges.ForEach(u=>{Console.WriteLine(u);}); //上面的缩写lambad表达式没有指定数据类型,会自行推断 (返回Age列,个人理解)
List<int> usAges= usList.Select(u=>{
return u.Age;
}).ToList();
------------------------------------------
//新的类型 ,Employee 是返回值
List<Employee> els = usList.Select(new Func<User,Employee>(delegate(User u){
Employee e = null;
if(u.Age > ){
e.name = u.Name;
e.Phone = u.Phone;
e.Salary = ;
}else{
return null;
}
return e;
})).ToList(); //==========--------------begin上面缩写-----------========
List<Employee> els = usList.Select(
GetEmployeFromUsers //这里满足委托条件
).ToList(); //处理els集合
els.ForEach(e=>{
if(e!=null)
{
Console.WriteLine(e.Name+""+e.Phone);
}
});
} //从新定义个方法(这里处理比较复杂,就单独写成一个方法)
public static Employee GetEmployeFromUsers(User u){
Employee e = new Employee();
if(u.Age > ){
e.Name = u.Name;
e.Phone = u.Phone;
e.Salary = u.Salary;
}else{
return null;
}
return e;
}
} //一个实体类
public class Employee{
public string name{get;set;}
public string Phone{get;set;}
public decimal Salary{get;set;}
} //==========--------------end上面缩写-----------========

MVC ---- 理解学习Func用法的更多相关文章

  1. [转]深入理解学习GIT工作流

    深入理解学习Git工作流 字数13437 阅读2761 评论3 喜欢70 个人在学习git工作流的过程中,从原有的 SVN 模式很难完全理解git的协作模式,直到有一天我看到了下面的文章,好多遗留在心 ...

  2. ASP.NET MVC 5 学习教程:Edit方法和Edit视图详解

    原文 ASP.NET MVC 5 学习教程:Edit方法和Edit视图详解 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 ...

  3. ASP.NET MVC 理解MVC模式

    ASP.NET MVC 理解MVC模式 PS:MVC出来很久了,工作上一直没机会用,所以我也没去学.出于兴趣,工作之余我将展开对MVC的深入学习,通过博文来记录所学所得,并希望能得到各位园友的斧正. ...

  4. ASP.NET MVC基础学习

    ASP.NET MVC基础学习 传统的MVC概念 模型:组类,描述了要处理的数据以及修改和操作数据的业务规则 视图:定义应用程序用户界面的显示方式 控制器:一组类,用来处理来自用户,整个应用程序流以及 ...

  5. ASP.NET MVC 5 学习教程:快速入门

    起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符串 通过控制器访问模型的数据 生成的代码详解 使用 SQL Se ...

  6. ASP.NET MVC 5 学习教程:Details 和 Delete 方法详解

    原文 ASP.NET MVC 5 学习教程:Details 和 Delete 方法详解 在教程的这一部分,我们将研究一下自动生成的 Details 和Delete 方法. Details 方法 打开M ...

  7. ASP.NET MVC 5 学习教程:添加验证

    原文 ASP.NET MVC 5 学习教程:添加验证 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符串 通过控 ...

  8. ASP.NET MVC 5 学习教程:数据迁移之添加字段

    原文 ASP.NET MVC 5 学习教程:数据迁移之添加字段 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符 ...

  9. ASP.NET MVC 5 学习教程:添加查询

    原文 ASP.NET MVC 5 学习教程:添加查询 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符串 通过控 ...

随机推荐

  1. 不需要更多JS框架了

    现在,JavaScript框架已成为Web项目开发不可或缺的一部分.那是因为很长一段时间以来,各种浏览器之间有很大的差别,人们不得不编写框架对此进行屏蔽.问题在于,各种浏览器甚至在基本问题上都难以取得 ...

  2. nginx 11个处理阶段 && nginx lua 8个处理阶段

    1. nginx 11 个处理阶段 nginx实际把请求处理流程划分为了11个阶段,这样划分的原因是将请求的执行逻辑细分,各阶段按照处理时机定义了清晰的执行语义,开发者可以很容易分辨自己需要开发的模块 ...

  3. IP设置-内置服务器-外置服务器

    HBulider 中 运行 -> 设置web服务器 -> 内置服务器将 127.0.0.1 换为局域网的ip,可以在局域网内所有电脑,手机上浏览页面.但是只能浏览html,php asp等 ...

  4. Ember.js学习教程 -- 目录

    写在前面的话: 公司的新项目需要用到Ember.js,版本为v1.13.0.由于网上关于Ember的资料非常少,所以只有硬着头皮看官网的Guides,为了加深印象和方便以后查阅就用自己拙劣的英语水平把 ...

  5. php hash算法

    任意长度的输入, 固定长度的输出 ,该输出就是hash值,这种转换就是一种压缩映射,也就是hash值的空间远远小于输入的空间, 不同的输入可能散列成相同的输出,而不能从hash值来唯一的确定输入值. ...

  6. sql server2012重复执行创建表视图sql及带行号的视图

    1.可重复操作(创建表,视图)的sql语句判断 IF EXISTS ( SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[re ...

  7. DIV CSS 绘制风车

    我得说,CSS和DIV是个有趣的东西. 由于脑袋一无聊,突然想,画个DIV风车怎么样,于是就画了一个. border的风格可以自主选择. 上代码: <style> *{ margin:0p ...

  8. redis windows版本下载

    https://github.com/dmajkic/redis/downloads http://windows.php.net/downloads/pecl/snaps/redis/3.1.4rc ...

  9. zw版【转发·台湾nvp系列Delphi例程】HALCON HistoToThresh1

    zw版[转发·台湾nvp系列Delphi例程]HALCON HistoToThresh1 procedure TForm1.Button1Click(Sender: TObject);var imag ...

  10. C# 将字节流转换为图片的实例方法(转)

    代码如下: usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; usingSystem. ...