这篇文章给大家分享的是有关Lamda表达式Expression<Func<T, bool>>与Func<T, bool>怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
在做C#是用到Lamda表达式后会节省很多代码,最近因为在做Mongodb的东西时,想封装个C#的数据库操作类,可是对于查询里面的where一直没考虑到怎么处理好,无意间百度到了Expression<Func<T, bool>>与Func<T, bool>,发现确实很不错
说明
Func<TObject, bool>是委托(delegate)
Expression<Func<TObject, bool>>是表达式
Expression编译后就会变成delegate,才能运行。
举例:
Expression<Func<int, bool>> ex = x=>x < 100;
Func<int, bool> func = ex.Compile();
然后你就可以调用func:
func(5) //-返回 true
func(200) //- 返回 false
而表达式是不能直接调用的。
测试例子
还是用我们上次Mongodb的Demo例子
我们原先的Save按钮里写了where后面直接是lamda表达式.现在我们改成Expression<Func<TObject, bool>>的方式
在Expression<Func<CPersonal,bool>> per,把Tobject改为CPersonal类
per就直接可以找到对应的参数进行设置,然后在下面的where子句里面直接传入per即可
接下来我们看看运行效果
先查询所有的数据
可以看到,大于21岁的有两条李四 : 42, wilson002 : 26
我们点击更新Save后
再重新查询
可以看到李四:44 wilson002:28
后面我们做MongoDb封装类时就可以用这个参数来传递where查询了
感谢各位的阅读!关于“Lamda表达式Expression<Func<T, bool>>与Func<T, bool>怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。