动态Linq选择 - 如何提取结果

时间:2014-03-20 13:17:02

标签: linq dynamic-linq

我有一个动态的Linq Select语句

var projection = result.AsQueryable().Select(string.Format("new({0},{1})",
         model.XtabRow, model.XtabColumn));

这样可以正常工作并生成一个可以使用匿名类型的IQueryable。

然而,由于AsEnumerable方法似乎缺失,我无法将其转换为IEnumerable以使用linq。我不得不使用反射来最后提取字段值

必须有更好的方法 - 任何帮助都会很棒

由于

1 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情

var projection = result.AsQueryable().Select(string.Format("new({0},{1})",
     model.XtabRow, model.XtabColumn));

var enumerableProjection = (from dynamic p in projection select p).AsEnumerable();

OR

var projection = result.AsQueryable().Select(string.Format("new({0},{1})",
     model.XtabRow, model.XtabColumn));

var enumerableProjection = projection.Cast<dynamic>().AsEnumerable();