你要合并是吧? var query = data.Where(x => x.ID == 1); var query2 = query.Concat(query.Where(x => x.Name == "aaa"));
说清楚你的意思 如果是合并条件 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 结构一样
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); } }
Unhandled Exception: System.InvalidOperationException: variable 'x' of type 'LinqStudyConsoleApp.A' referenced from scope '', but it is not defined怎么办?
试试可以不~
var query = data.Where(x => x.ID == 1&&x.Name == "aaa");
var query = data.Where(x => x.ID == 1);
var query2 = query.Concat(query.Where(x => x.Name == "aaa"));
如果是合并条件
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 结构一样
{
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);
}
}
大侠,我重新提问了,http://bbs.csdn.net/topics/390364375,请你再帮我看下,谢谢了!