MVC ---- 如何使用Predicate以及如何自定定义Predicate委托
微软公司提供只能返回bool值,接受一个参数的委托类型(Predicate)。
//Predicate委托
public static class PredicateDemo{
//内置方法
public static void TestPredicate(){
//泛型集合
List<User> user = Five.GetList();
//user.Find();
//返回一个bool值
//例1
List<user> newUslist = user.FindAll(new Predicate<User>(delegate(User u){u.age>;})); //返回一个bool值
//例2
List<user> newUslist = user.FindAll(new Predicate<User>(delegate(User u ){
bool isTrue = false;
if(u.PassWord.equals("")&&u.age > ){
isTrue =true;
}
return isTrue;
})); Console.WriteLine(newUslist.toList()); //调用自定义委托
List<User> newUslist = user.MyFind(new PanDuan<User>(delegate(User u){
bool isTrue =false;
if(u.PassWord.equals("")&&u.age > ){
isTrue =true;
}
return isTrue;
}));
} #region 自定义委托
public delegate bool PanDuan<T>(T t); public static List<T> MyFind(this List<T> ls,PanDuan<T> match){
List<T> newTs = new List<T>();
foreach(T t in ls){
if(match(t)){
newTs.Add(t);
}
}
return newTs;
}
#endregion //上面两个例子放回结果是一样的。 -----------------------------------------------
lambad表达式 //例2
List<user> newUslist = user.FindAll(new Predicate<User>(delegate(User u ){
bool isTrue = false;
if(u.PassWord.equals("")&&u.age > ){
isTrue =true;
}
return isTrue;
}));
第一步去掉 new Predicate<User>
List<user> newUslist = user.FindAll(delegate(User u ){
bool isTrue = false;
if(u.PassWord.equals("")&&u.age > ){
isTrue =true;
}
return isTrue;
});
第二步去掉 去掉匿名函数delegate(User u)换成 u=>
List<user> newUslist = user.FindAll({
bool isTrue = false;
if(u.PassWord.equals("")&&u.age > ){
isTrue =true;
}
return isTrue;
}));
如下:
List<user> newUslist = user.FindAll(u=>{
bool isTrue = false;
if(u.PassWord.equals("")&&u.age > ){
isTrue =true;
}
return isTrue;
}); //自定义委托改写lambad表达式
//调用自定义委托
List<User> newUslist = user.MyFind(u=>{
bool isTrue =false;
if(u.PassWord.equals("")&&u.age > ){
isTrue =true;
}
return isTrue;
});
}
MVC ---- 如何使用Predicate以及如何自定定义Predicate委托的更多相关文章
- [ASP.NET MVC 大牛之路]02 - C#高级知识点概要(1) - 委托和事件
在ASP.NET MVC 小牛之路系列中,前面用了一篇文章提了一下C#的一些知识点.照此,ASP.NET MVC 大牛之路系列也先给大家普及一下C#.NET中的高级知识点.每个知识点不太会过于详细,但 ...
- Predicate<T>与Func<T, bool>泛型委托
引用别人的: static void Main(string[] args) { List<string> l = new List<string>(); l.Add(&quo ...
- C#中Predicate<T>与Func<T, bool>泛型委托的用法实例
本文以实例形式分析了C#中Predicate<T>与Func<T, bool>泛型委托的用法,分享给大家供大家参考之用.具体如下: 先来看看下面的例子: 1 2 3 4 5 6 ...
- (转)MVC语法-@helpers和@functions(Razor内定义函数)
(转)MVC语法-@helpers和@functions(Razor内定义函数) 转自:http://www.mikesdotnetting.com/Article/173/The-Differenc ...
- MVC自定定义扩展点之ActionNameSelectorAttribute+ActionFilterAttribute 在浏览器中打开pdf文档
仅仅演示 了ASP.MVC 5 下为了在在浏览器中打开pdf文档的实现方式之一,借此理解下自定义ActionNameSelectorAttribute+ActionFilterAttribute 类的 ...
- 【nodejs】让nodejs像后端mvc框架(asp.net mvc )一样处理请求--控制器的声明定义和发现篇(3/8)
文章目录 前情概要 前面文章把路由已经介绍的差不多了,包括url映射,路由选择等.接下来讲一讲controller的一些基本规则 BaseController的所有代码都在这里拉.相当简单. 主要逻辑 ...
- STL - 判断式(Predicate) - 单参判断式(Unary Predicate)
Predicate是一种特殊的辅助函数,它会返回Boolean,常常被用来作为排序或者查找准则. Predicate会有1个或者2个操作数. Unary Predicate(单参判断式) 例子: 我们 ...
- Asp.Net MVC Views页面不包含“GetEnumerator”的公共定义
“/”应用程序中的服务器错误. 编译错误 说明: 在编译向该请求提供服务所需资源的过程中出现错误.请检查下列特定错误详细信息并适当地修改源代码. 编译器错误消息: CS1579: “Web.Model ...
- MVC Core 网站开发(Ninesky) 2.1、栏目的前台显示(补充)
在2.1.栏目的前台显示中因右键没有添加视图把微软给鄙视了一下,后来有仔细研究了一下发现应该鄙视自己,其实这个功能是有的,是自己没搞清楚乱吐糟. 其实只要在NuGet中安装两个包(Microsoft. ...
随机推荐
- 【剑指offer】从上往下打印二叉树
一.题目: 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 二.思路: 用队列,用根节点初始化队列,然后依次从队列中取出节点,先把当前节点输出,并把左右子树分别放入队列,直到队列为空.欧了. ...
- iota 币产生私钥的方法
iota 币的官网是 iota.org, iota 的官网推荐的钱包地址是: https://github.com/iotaledger/wallet iota 币产生私钥是没有什么特殊的要 ...
- visio 的使用方法
1:往visio中添加商务图形和形状的方法.例如饼状图. 文件>形状>商务>图表和图形>绘制图表形状 2:visio 画半弧形,用铅笔 3: visio 画的图形,如果想要和v ...
- [py]django强悍的数据库接口(QuerySet API)-增删改查
django强悍的数据库接口(QuerySet API) 4种方法插入数据 获取某个对象 filter过滤符合条件的对象 filter过滤排除某条件的对象- 支持链式多重查询 没找到排序的 - 4种方 ...
- Python自动发邮件-yagmail库
之前写过用标准库使用Python Smtplib和email发送邮件,感觉很繁琐,久了不用之后便忘记了.前几天看知乎哪些Python库让你相见恨晚?,看到了yagmail第三方库,学习过程中遇到一些问 ...
- 认识GMT和UTC时间-附带地理知识
GMT-格林尼治标准时 GMT 的全名是格林威治标准时间或格林威治平时 (Greenwich Mean Time),这个时间系统的概念在 1884 年确立,由英国伦敦的格林威治皇家天文台计算并维护,并 ...
- boostrap小图标
- HDU 6390 GuGuFishtion
题意: 计算: \[\sum\limits_{a = 1}^{m}\sum\limits_{b = 1}^{n} \frac{\varphi(ab)}{\varphi(a)\varphi(b)} (\ ...
- MySQL从删库到跑路_高级(五)——触发器
作者:天山老妖S 链接:http://blog.51cto.com/9291927 一.触发器简介 1.触发器简介 触发器是和表关联的特殊的存储过程,可以再插入,删除或修改表中的数据时触发执行,比数据 ...
- PLSQL入门:cursor传参,loop fetch使用,if使用,单引号字符表示
1.cursor传入参数 定义:cursor [cursor变量名称]([参数名称] [参数类型]) IS [SQL语句,可以使用传入参数] 例子: cursor moTypeNames(dom ...