我有一个像这样的签名的方法
void RefreshMethod<T>(IEnumerable<T> lst, string propertyName) where T:class
{
Type type = typeof(T);
PropertyInfo property = type.GetProperties().Single(u => u.Name == primaryKeyProperty);
//query goes here
}
现在我想查询该集合以获取所有
的值propertyName&lt; 0
在一个简单的场景中,它就像这个
一样简单lst.where(u=>u.ID<0)
但在这里我没有那个ID属性,但有相应的“PropertyInfo”对象。
我该如何实现这一点。
请指导
答案 0 :(得分:5)
您可以使用property.GetValue(anObjectOfTypeT, null)
查找属性值。
类似于:
var refreshedList = lst.Where(l => ((int)(property.GetValue(l, null)) < 0).ToList();
这假设该属性将始终为int类型。