是否可以将反射属性链接到变量?只是为了更好的代码。
var xxx = results.Where(r => r.GetType().GetProperty(levelName).GetValue(r, null) == node.Name)
有可能转换成那样的东西吗?
var myReflectedProp = r.GetType().GetProperty(levelName).GetValue(r, null);
var myReflectedProp2 = r.GetType().GetProperty(levelName2).GetValue(r, null);
var xxx = results.Where(r => myReflectedProp && r => myReflectedProp2)
干杯
是的,如果您只是手动创建表达式树,这是可能的。
var myReflectedPropParameter = Expression.Parameter(typeof(YourType));
var myReflectedProp = Expression.Lambda<Func<YourType, bool>>
(Expression.MakeMemberAccess(myReflectedPropParameter, typeof(YourType).GetProperty(levelName)), myReflectedPropParameter);
var xxx = results.Where(myReflectedProp);
当然,您需要向System.Linq.Expressions
添加一个using语句。