条件Lamada树生成器

原创 2012年03月23日 14:07:40
    /// <summary>
    /// 条件表达式生成器
    /// </summary>
    public static class PredicateBuilder
    {
        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>> expr1, Expression<Func<T, bool>> expr2)
        {
            var invokedExpr = Expression.Invoke(expr2, expr1.Parameters.Cast<Expression>());
            return Expression.Lambda<Func<T, bool>> (Expression.Or(expr1.Body, invokedExpr), expr1.Parameters);
        }

        public static Expression<Func<T, bool>> And<T>(this Expression<Func<T, bool>> expr1,Expression<Func<T, bool>> expr2)
        {
            var invokedExpr = Expression.Invoke(expr2, expr1.Parameters.Cast<Expression>());
            return Expression.Lambda<Func<T, bool>> (Expression.And(expr1.Body, invokedExpr), expr1.Parameters);
        }
    }
       /// <summary>
       /// 查询
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void btnSearch_Click(object sender, EventArgs e)
        {


            Expression<Func<Company, bool>> expr = Select();
            var source = from c in db.Company.Where(expr)
                         select c;
            rptSupplier.DataSource = source.Skip(anpPage.PageSize * (anpPage.CurrentPageIndex - 1)).Take(anpPage.PageSize); ;
            rptSupplier.DataBind();
            anpPage.RecordCount = source.Count();


        }
        /// <summary>
        /// 获取多条件查询树
         /// </summary>
        /// <returns></returns>
        public Expression<Func<Company, bool>> Select()
        {
            var predicate = PredicateBuilder.True<Company>();
            if (!string.IsNullOrEmpty(txtComanyName.Text))
            {
                predicate = predicate.And(p => p.CompanyName.Contains(txtComanyName.Text.Trim()));
            }
            if (!string.IsNullOrEmpty(txtContactName.Text))
            {
                predicate = predicate.And(p => p.ContactName.Contains(txtContactName.Text.Trim()));
            }
            if (!string.IsNullOrEmpty(txtContactTitle.Text))
            {
                predicate = predicate.And(p => p.ContactTitle.Contains(txtContactTitle.Text.Trim()));
            }
            if (!string.IsNullOrEmpty(txtCity.Text))
            {
                predicate = predicate.And(p => p.City.Contains(txtCity.Text.Trim()));
            }
            return predicate;
        }


测试数据生成器——树

#include using namespace std; int t; int n, m; int a, b, c, d; int random1(int mod) { if(mod =...
  • fzh917
  • fzh917
  • 2017年08月20日 16:03
  • 258

SQL查询条件生成器

 在数据库的编程中,常常要对数据库的数据根据条件查询,查询条件生成器正是因此而生。一、查询条件生成器源码        查询条件生成器由以下六个文件组成       1、接口IFilter.csusi...
  • xlfancy
  • xlfancy
  • 2008年12月13日 12:51
  • 1408

C# Lambada表达式 总结

1. Whereメソッド using System.Linq; class Program { static void Main() { int[] work = ...
  • neusoft06
  • neusoft06
  • 2012年08月23日 21:20
  • 3618

Unity树木生成器

文档翻译连接:http://www.ceeger.com/Components/tree-Structure.html 制作的时候需要注意的是: 1、树干和树叶都需要是单独的一张贴图,U3D会自动...
  • vingeart
  • vingeart
  • 2015年12月28日 15:37
  • 644

lamada

匿名函数lamada 除了def语句之外,Python还提供了一种生成函数对象的表达式形式。由于它与LISP语言中的一个工具很相似,所以称为lamada。就像def一样,这个表达式创建了一个之后能够...
  • qiqiaiairen
  • qiqiaiairen
  • 2016年09月05日 20:30
  • 364

树生成器

 刚申请了CSDN的帐号,先随便写点什么,这个树生成器做了一两个星期了,不过因为老被一些事情困绕都没有好好专下心来写,目前还是很简陋的,生成的树因为躯干没有弯曲也显得不是很自然,本来想搞得有点弯曲度的...
  • zzxhang
  • zzxhang
  • 2007年01月29日 13:05
  • 457

简易文件夹树形文本文件生成器

调用:DirectoryTreeBuilder builder=new DirectoryTreeBuilder();            builder.CreateTreeTextFile("-...
  • asTheAIR
  • asTheAIR
  • 2010年03月05日 10:57
  • 1540

ZJOI2016一试 酱油记

Day0:到了学车,然后领了胸(gou)牌,就会宾馆了。。看电(xiao)视(shuo)颓,手机不能下App好不兹瓷啊。        Day1:上午rzz(StilWell?)讲数学,,就推(c...
  • lych_cys
  • lych_cys
  • 2016年03月24日 18:51
  • 2818

lamada 表达式

  linq的基本功能是创建操作管道,以及这些操作需要的任何状态,这些操作表示了各种关于数据的逻辑,如何刷选,如何排序以及如何将不同的数据源联接到一起,当linq查询在"进程内"执行的时候那些操作通常...
  • zhangyiliude
  • zhangyiliude
  • 2011年04月23日 10:39
  • 3422

[C#]Lambda表达式和Where语法

之前一直以为C#中Lambda表达式和Where语法很神圣,看人家写出一串这样的代码出来都感觉好高深,其实只是不敢接触而已,然后今晚看了一下,其实仔细理解一下也很简单!看例子:[code]csharp...
  • s10141303
  • s10141303
  • 2014年05月23日 01:14
  • 12515
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:条件Lamada树生成器
举报原因:
原因补充:

(最多只允许输入30个字)