02 2012 档案
动态创建Lambda表达式
摘要:作为Delegate的更进一步的应用,Lambda让我们的代码更加的简介与方便,可以方便的用Where()、Select()等扩展方法对集合进行筛选,组合。但同时也遇到了一个问题,有时候,因为用户想要进行的条件并不是固定不便的,有时候会这么查,有时候又会组合查,同时,有时候因为数据库设计的原因,有的字段拼接成一个很长的字符串,但是这时又要进行查询,只要与条件有交集,那么就要提取出这条记录,所以必须要用到动态构建Lambda表达式。但是作为一种静态语言,我们显然无法用动态语法或者拼接字符串的方式来创建一个Delegate/Lambda,那么如何才能达到类似的目的呢?或许最佳的选择就是表达式树。我 阅读全文
posted @ 2012-02-22 10:08 green.4984 阅读(6564) 评论(2) 推荐(3)
Lambda表达式树
摘要:static void Main(string[] args) { var ints = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; ParameterExpression parameter = Expression.Parameter(typeof(Int32)); BinaryExpression condition = null; //要构造的表达式i==1||i==2||i==3..... for (int ... 阅读全文
posted @ 2012-02-03 18:09 green.4984 阅读(569) 评论(0) 推荐(1)