在LINQ中使用PropertyInfo对象查询集合

我有一个像这样的签名的方法

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 <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类型。

链接地址: http://www.djcxy.com/p/34227.html

上一篇: Query a collection using PropertyInfo object in LINQ

下一篇: Strongly typed dynamic Linq sorting