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)"。请尝试显式指定类型参数。

如何仅选择在运行时确定的列?

Select Columns runtime in LINQ LIST<>

您正在寻找动态LINQ。

您可以使用动态linq,这是一个开源项目,我曾使用它进行真正的动态linq查询:

斯科特博客上的文章

希望能有所帮助。

这里有一个非常可怕的方法,可以实现

var result = from l in listEmployees
             select l.GetType().GetProperty(propertyName).GetValue(l, null);

其中propertyName是您在运行时传递的任何字符串。

当然,您可能希望提取select之后的位作为方法,并添加一些检查。