Запрос коллекции с использованием объекта PropertyInfo в LINQ

У меня есть метод с такой подписью

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".

Как я должен достичь этого.

любезно руководство

1 ответ

Решение

Вы можете посмотреть значение свойства, используя property.GetValue(anObjectOfTypeT, null),

Так что-то вроде:

var refreshedList =  lst.Where(l => ((int)(property.GetValue(l, null)) < 0).ToList();

Это предполагает, что свойство всегда будет иметь тип int, хотя.

Другие вопросы по тегам