代码:
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怎么办?
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怎么办?
解决方案 »
- textBox,编辑完成后,点其他的地方,怎么焦点还没失去? 光标还在里面?
- 为什莫我的chach消息框不能显示
- c# WinFrm 打包数据库问题 方法和代码在帖子里面(安装后数据库存在但是 表,存储过程 等都没有)希望大家指点
- 邮件正文解码的问题,高手帮帮忙
- wap的问题
- 新手请教C#问题~[
- C#写的程序上好像无法引用System.Web.HttpUtility.UrlEncode
- 正则撇配替换字符串的时候如果有两队匹配。如何只处理一对?
- c# 或是 asp.net 怎么在调用前,知道是调用的哪个方法?
- 怎样屏蔽在标题栏上的双击
- VS2010看不到文本光标
- winform的图形按钮求例程
Expression<Func<A, bool>> expr1 = x => x.ID == 0;
Expression<Func<A, bool>> expr2 = x => x.Name == "A";
var invokedExpr = Expression.Invoke(expr2, expr1.Parameters.Cast<Expression>());
var andAlsolam = Expression.Lambda<Func<A, bool>>(Expression.AndAlso(expr1.Body, invokedExpr), expr1.Parameters); var query = data.Where(andAlsolam.Compile());