我试图弄清楚如何在linq查询中动态指定select子句的属性。
假设我有一组员工对象。在运行时,最终用户将指定他们希望为这些员工查看哪些属性,因此我需要能够动态构建我的Linq select子句。
我使用了动态Linq库,但我不想使用它,因为它需要我构建一个字符串以传递给select方法。我想通过表达式了解如何做到这一点。
答案 0 :(得分:0)
This看起来更符合您不使用动态linq的要求。
答案 1 :(得分:0)
使用Reflection获取动态列值
// columns变量的列名为逗号分隔的字符串 可以保存在DB //示例字符串columns =“Name,Id,Age”;
var strColumns =columns.split(,);
foreach(var myObject in MyObjectcollection)
{
for(int index =0;index<strColumns.count();index++)
{
//Create a collection of objects
mycollection.add(myObject.GetType().GetProperty(strColumns[index]).GetValue(myObject, null));
}
}