Select Columns runtime in LINQ LIST<>
本文关键字:gt lt LIST LINQ Columns runtime in Select | 更新日期: 2023-09-27 18:27:34
我有List<Employee> listEmployees
我想选择一些在编译时不知道的动态列,比如:
var result = from l listEmployees
select ""
我试过listEmployees.select("Name");
但它抛出了一个错误:
无法根据用法推断"System.Linq.Enumerable.Select(System.Collections.Generic.IEnumerable,System.Func)"。请尝试显式指定类型参数。
如何仅选择在运行时确定的列?
您正在寻找动态LINQ。
您可以使用动态linq,这是一个开源项目,我曾使用它进行真正的动态linq查询:
斯科特博客上的文章
希望能有所帮助。
这里有一个非常可怕的方法,可以实现
var result = from l in listEmployees
select l.GetType().GetProperty(propertyName).GetValue(l, null);
其中propertyName是您在运行时传递的任何字符串。
当然,您可能希望提取select之后的位作为方法,并添加一些检查。