MVC ---- 理解学习Func用法
//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用法的更多相关文章
- [转]深入理解学习GIT工作流
深入理解学习Git工作流 字数13437 阅读2761 评论3 喜欢70 个人在学习git工作流的过程中,从原有的 SVN 模式很难完全理解git的协作模式,直到有一天我看到了下面的文章,好多遗留在心 ...
- ASP.NET MVC 5 学习教程:Edit方法和Edit视图详解
原文 ASP.NET MVC 5 学习教程:Edit方法和Edit视图详解 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 ...
- ASP.NET MVC 理解MVC模式
ASP.NET MVC 理解MVC模式 PS:MVC出来很久了,工作上一直没机会用,所以我也没去学.出于兴趣,工作之余我将展开对MVC的深入学习,通过博文来记录所学所得,并希望能得到各位园友的斧正. ...
- ASP.NET MVC基础学习
ASP.NET MVC基础学习 传统的MVC概念 模型:组类,描述了要处理的数据以及修改和操作数据的业务规则 视图:定义应用程序用户界面的显示方式 控制器:一组类,用来处理来自用户,整个应用程序流以及 ...
- ASP.NET MVC 5 学习教程:快速入门
起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符串 通过控制器访问模型的数据 生成的代码详解 使用 SQL Se ...
- ASP.NET MVC 5 学习教程:Details 和 Delete 方法详解
原文 ASP.NET MVC 5 学习教程:Details 和 Delete 方法详解 在教程的这一部分,我们将研究一下自动生成的 Details 和Delete 方法. Details 方法 打开M ...
- ASP.NET MVC 5 学习教程:添加验证
原文 ASP.NET MVC 5 学习教程:添加验证 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符串 通过控 ...
- ASP.NET MVC 5 学习教程:数据迁移之添加字段
原文 ASP.NET MVC 5 学习教程:数据迁移之添加字段 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符 ...
- ASP.NET MVC 5 学习教程:添加查询
原文 ASP.NET MVC 5 学习教程:添加查询 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符串 通过控 ...
随机推荐
- 在centos7下安装svn
SVN的安装 yum install subversion 服务端命令 1. svnserver - 控制svn系统服务的启动等 2. svnadmin - 版本库的创建/导出/导入/删除等 3. s ...
- 十天精通CSS3(5)
background-origin 设置元素背景图片的原始起始位置. 语法: background-origin : border-box | padding-box | content-box; 参 ...
- [wx]自然数学规律
有趣的数学规律 椭圆 双曲线 抛物线都叫圆锥曲线 它们跟圆锥有着怎样的关系? 他们都是圆锥与平面在不同姿势下交配的产物. 参考 椭圆 抛物线 小结 e: 离线率 P: 任意一点 F: 焦点 准线: 一 ...
- Apache 配置多个HTTPS站点
作中经常会遇到多个站点实现https访问,并指向同一个网页,本文将详解如何在Centos 环境下配置Apache多站点实现HTTPS访问. 准备工作 OS:CentOS release 6.8 (Fi ...
- [LeetCode] 844. Backspace String Compare_Easy tag: Stack **Two pointers
Given two strings S and T, return if they are equal when both are typed into empty text editors. # m ...
- 使用nvm管理node版本时,各个版本下公用npm安装的插件问题
因为使用了NVM(node版本管理工具),所以在切换node版本的时候安装的插件不能共享使用,必须重新安装,导致不必要的工作量 所以我将npm(node包管理工具提取出来) 进行node版本之间的共享 ...
- jQ live用法
我们给元素绑定单击事件.用得最多的都是$("#id").click(function(){}); 但我们动态添加的元素.这样绑定是不行的.必须借助live $("#id ...
- Lintcode: Lowest Common Ancestor
Given the root and two nodes in a Binary Tree. Find the lowest common ancestor(LCA) of the two nodes ...
- vue性能优化2--引入cdn
当我们加载页面时,需要将我们所需要的一些依赖加载到当前会话中然后再开始执行,如果我们首屏,模块比较多是,需要等待的时间会比较长,而且.浏览器内存最多执行四十个进程,需要等到加载完前面的才能执行后面的代 ...
- Perl的debug小技巧
进入Perl的调试环境的命令: Perl -d perl_file 设置断点:b + perl代码中的行号. 执行到断点:c 表示continue until breakpoint. 执行下一条 ...