毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> net技术 >> 正文

如何用lambda表达式 写任意条件组合的搜索语句

更新时间:2014-4-30:  来源:毕业论文

我有5个字段 a、 b、c、d、e。
我需要搜索满足条件 a=1的数据
list.Where(obj => obj.a==1)

有时候我需要同时满足b=2
list.Where(obj => obj.a==1 && obj.b==2)

我的问题是我需要随机组合不同搜索条件 的时候 我如何灵活的写搜索条件语句呢
比如有时我要a=1 b=2 d=4  有时我只要 c=3 e=5 如何写一个面向对象的搜索函数呢?
自己定义一个函数
void listSelect(List list,obj a,string objName)
+4重载
void listSelect(List list,obj a,obj b,string objName1,string objName2)
...
 public static class PredicateExtensions     {         public static Expression<Func<T, bool>> True<T>()         {             return f => true;         }           public static Expression<Func<T, bool>> False<T>()         {             return f => false;         }           public static Expression<Func<T, bool>> Or<T>(this Expression<Func<T, bool>> expression1, Expression<Func<T, bool>> expression2)         {             var invokedExpression = Expression.Invoke(expression2, expression1.Parameters.Cast<Expression>());             return Expression.Lambda<Func<T, bool>>(Expression.Or(expression1.Body, invokedExpression), expression1.Parameters);         }           public static Expression<Func<T, bool>> And<T>(this Expression<Func<T, bool>> expression1, Expression<Func<T, bool>> expression2)         {             var invokedExpression = Expression.Invoke(expression2, expression1.Parameters.Cast<Expression>());             return Expression.Lambda<Func<T, bool>>(Expression.And(expression1.Body, invokedExpression), expression1.Parameters);         }     }

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。