Intereting Posts

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

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

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) используя property.GetValue(anObjectOfTypeT, null) .

Итак, что-то вроде:

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

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