110,567
社区成员
发帖
与我相关
我的任务
分享
var ints = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
var r = ints.Where(i => i > 5);
var query=from x in db select x;
if(!起始日期.IsNull)
query=query.where(x=> x.date >= 起始日期.Value);
if(姓名!=null && 姓名!=string.Empty)
query=(from x in query where x.StartWith(姓名) select x;
public class Entity
{
public int ID { get; set; }
public string Name { get; set; }
public string Sex { get; set; }
}
ParameterExpression paramExpr = Expression.Parameter(typeof(Entity), "e");
string field = "Name";
string content = "x";
MemberExpression mExpr = Expression.Property(paramExpr, field); // 根据field创建属性表达式
ConstantExpression cExpr = Expression.Constant(content, typeof(string)); // 创建表示content变量值的表达式
BinaryExpression bExpr = Expression.Equal(mExpr, cExpr); // 创建等于content参数值的表达式
Expression whereExpr = bExpr;
Expression<Func<Entity, bool>> lambda;
// 生成Lambda表达式
if (whereExpr != null)
lambda = Expression.Lambda<Func<Entity, bool>>(whereExpr, paramExpr);
else
lambda = null;
//////////////////////////////我是分隔线//////////////////////////////////////////////////
IList<Entity> list = new List<Entity>();
Entity e = new Entity();
e.ID = 1;
e.Name = "x";
e.Sex = "男";
list.Add(e);
e = new Entity();
e.ID = 2;
e.Name = "y";
e.Sex = "男";
list.Add(e);
e = new Entity();
e.ID = 3;
e.Name = "z";
e.Sex = "女";
list.Add(e);
var resultList = list.Where<Entity>(lambda.Compile());