我有一个具有这种结构的课程:
public class BusinessObject
{
public int Column5 { get; set; }
public int Column6 { get; set; }
public string Column7 { get; set; }
public int Column8 { get; set; }
}
我使用LINQ:
List<int> test = (from x in BusinessObjectCollection select x.Column5).Distinct().ToList();
现在这很好..但如果我不知道用户想要不同值的属性怎么办?如果我拥有的是一个字符串变量,它告诉我他们想要哪个列来自???
的不同值答案 0 :(得分:2)
尝试
List<object> test = (from x in BusinessObjectCollection select x.GetType().GetProperty ("thePropertyName").GetGetMethod().Invoke(x,null)).Distinct().ToList();
答案 1 :(得分:0)
我会使用if
。为什么会这样复杂?
答案 2 :(得分:0)
尝试类似 伪代码的内容! :
IQueryable<BusinessObject> filteredBoList = boList.AsQueryable();
Type boType= typeof(BusinessObject);
foreach(string filter in filterColumnNames) {
var found = filteredBoList.Where(p => (string)boType.InvokeMember(filter.FieldName,BindingFlags.GetProperty, null, p, null) == filter ).Distinct();
}
应该工作。
问候。