//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. 使用java进行excel读取和写入

    1:添加处理excel的依赖jar包 <!-- 引入poi,解析workbook视图 --> <dependency> <groupId>org.apache.po ...

  2. [js]ext.js探索

    Ext JS 经常会遇到布局等头疼的问题,一直在用bootstrap,但是我不喜欢这玩意出的效果想找个合适的js架构入手 http://examples.sencha.com/extjs/6.6.0/ ...

  3. vue-router中参数传递 && 编程式导航 && 坑 && beforeRouteEnter

    第一部分: vue-router参数传递 通过router-link我们可以向路由到的组件传递参数,这在我们实际使用中时非常重要的. 路由: { path:"/DetailPage" ...

  4. git分支名一直带rebasing,如何去除

    git分支名一直rebasing, 使用git rebase --continue git rebase --skip git reset --abort 都没有用, 最后直接删除 当前目录下的.gi ...

  5. 基于androidstudio3.0的build文件配置问题

    最近,在研究APP自动化相关的东西,在搭建环境的时候,遇到的坑以及最后解决的方法,不过目前很多东西了解得还不是很细,暂时先简单的记录一下一.build配置文件 主要分为两种: 1.工程下的build配 ...

  6. iOS 自定义日志输出

    在做iOS开发过程中,我们经常需要输出日志来查看某些数据是否打印出来,或者查看查个类是否被调用了. 系统默认的是NSLog(@"xxxx %d",1) ,但如果该APP要发布到商店 ...

  7. Vue.Js添加自定义插件

    基于上篇我们讲了 在window下搭建Vue.Js开发环境 我们可以开发自己的vue.js插件发布到npm上,供大家下载使用. 1.首先打开cmd命令窗口,进入我们的工作目录下 执行 cd E:\vu ...

  8. EasyUI写的登录界面

    <!DOCTYPE html><html> <head>        <meta charset="utf-8" />       ...

  9. [转]C语言四书五经

    我们来说说C语言方面的图书.什么,C语言?有读者奇怪了.没错,这一次的主角就是诞生于1973年如今已经儿孙满堂的C语言.我们之所以要谈及C,不仅仅是因为它的影响深远,这完全可以从C系列语言家族的兴旺发 ...

  10. AHB-Lite简介

    AHB总线实现了简单的基于burst的传输,数据总线带宽可配置32-1024bit.可以实现简单的fixed pipeline在address/control phase和 data phase之间. ...