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