我有List<Employee> listEmployees
我想选择一些在编译时不知道的动态列,例如:
var result = from l listEmployees
select ""
我尝试了listEmployees.select("Name");
但它引发了一个错误说:
'System.Linq.Enumerable.Select(System.Collections.Generic.IEnumerable,System.Func)'无法从用法中推断出来。尝试显式指定类型参数。
如何只选择在运行时确定的列?
答案 0 :(得分:7)
您正在寻找Dynamic LINQ。
答案 1 :(得分:1)
答案 2 :(得分:1)
这是一个非常可怕的方法
var result = from l in listEmployees
select l.GetType().GetProperty(propertyName).GetValue(l, null);
其中propertyName是您在运行时传递的任何字符串。
当然,您可能希望在select之后将该位提取为方法并添加一些检查。