“拼接”linq查询

static void Main( string[] args)
        {
            List< Person> list = new List< Person>() {
                new Person(){ Age=20, Name= "wengyuli", Parts= new Part(){ Name= "123"}},
                new Person(){ Age=30, Name= "chenyang", Parts= new Part(){ Name= "123456"}},
                new Person(){ Age=40, Name= "heshuai", Parts= new Part(){ Name= "123"}},
                new Person(){ Age=50, Name= "heyunlong", Parts= new Part(){ Name= "123456"}}
            };

            var c = Expression.Parameter( typeof( Person), "m");

            Expression condition = Expression.Constant( false);


            Expression con = Expression.Call(
                Expression.Property(c, typeof( Person).GetProperty( "Name")),
                typeof( string).GetMethod( "StartsWith", new Type[]{ typeof( string)}),
                Expression.Constant( "wengyuli"));

            condition = Expression.Or(con, condition);
            Expression< Func< Person, bool>> end = Expression.Lambda< Func< Person, bool>>(condition, new ParameterExpression[] { c });
        }
       
        class Person
       
{
            public string Name { set; get; }
            public int Age { set; get; }
            public Part Parts { set; get; }
        }

        class Part
       
{
            public string Name { set; get; }
        }
    }

 

你可能感兴趣的:(C++,开发,职场,语言,休闲)