2个Lambda怎么合并?
比如
query = data.Where(x => x.ID == 1);
query = query.Where(x => x.Name == "aaa");

解决方案 »

  1.   

    query = data.Where(x => x.ID == 1&&x.Name == "aaa");
      

  2.   

    data.Where(x => (x.ID == 1&&x.Name == "aaa"));
    试试可以不~
      

  3.   

    不明白,你所说的合并在事实上就是对两个条件下的查询结果,道理上就是:
    var query = data.Where(x => x.ID == 1&&x.Name == "aaa");
      

  4.   

    你要合并是吧?
    var query = data.Where(x => x.ID == 1);
    var query2 = query.Concat(query.Where(x => x.Name == "aaa"));
      

  5.   

    说清楚你的意思
    如果是合并条件
    var query = data.Where(x => x.ID == 1&&x.Name == "aaa");如果是合并两个结果集,求并集嘛??
    如下
    var query1 = data.Where(x => x.ID == 1);
    var query2 = query.Where(x => x.Name == "aaa");
    var query = query1.Union(query2);//query1 query2 结构一样
      

  6.   

    class A
    {
        public int ID { get; set; }
        public string Name { get; set; }
    }
    class Program
    {
        static void Main(string[] args)
        {
            var data = Enumerable.Repeat(0, 6).Select((x, i) => new A { ID = i / 2, Name = ((char)(i / 2 + 65)).ToString() });
            Expression<Func<A, bool>> query1 = x => x.ID == 1;
            Expression<Func<A, bool>> query2 = x => x.Name == "A";
            var query = data.Where(Expression.Lambda(Expression.AndAlso((query1 as LambdaExpression).Body, (query2 as LambdaExpression).Body), (query1 as LambdaExpression).Parameters).Compile() as Func<A, bool>);
            foreach (var item in query)
                Console.WriteLine("{0} {1}", item.ID, item.Name);
        }
    }
      

  7.   

    Unhandled Exception: System.InvalidOperationException: variable 'x' of type 'LinqStudyConsoleApp.A' referenced from scope '', but it is not defined怎么办?
      

  8.   


    大侠,我重新提问了,http://bbs.csdn.net/topics/390364375,请你再帮我看下,谢谢了!