如何在Linq中执行动态选择?

时间:2010-05-19 19:21:26

标签: linq select dynamic

我试图弄清楚如何在linq查询中动态指定select子句的属性。

假设我有一组员工对象。在运行时,最终用户将指定他们希望为这些员工查看哪些属性,因此我需要能够动态构建我的Linq select子句。

我使用了动态Linq库,但我不想使用它,因为它需要我构建一个字符串以传递给select方法。我想通过表达式了解如何做到这一点。

2 个答案:

答案 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));
    }
  }