8,497
社区成员
发帖
与我相关
我的任务
分享
User mUser= new User{ID,Name}
CurrentID=?
List<User> LstT=.......
LstT.Where(XO => XO.ID == CurrentID).Equals(CurrentID);
LstT.Where(X => X.GetType().GetProperties().。。。。。。。.Equals(CurrentID))
public static class DynamicQuery
{
public static IEnumerable<T> Query<T>(this IEnumerable<T> listT, string fieldName, string value)
{
var param = Expression.Parameter(typeof(T), "i");
Expression left = Expression.Property(param, typeof(T).GetProperty(fieldName));
Expression right = Expression.Constant(value);
Expression filter = Expression.Equal(left, right);
Expression pred = Expression.Lambda(filter, param);
Expression expr = Expression.Call(typeof(Queryable), "Where", new[] { typeof(T) }, Expression.Constant(listT.AsQueryable()), pred);
return listT.AsQueryable().Provider.CreateQuery<T>(expr);
}
}
调用:
LstT.Query("ID",CurrentID);