-->

动态LINQ的选择 - 如何提取结果(Dynamic Linq Select -How to ext

2019-10-30 11:17发布

我有以下形式的动态LINQ的Select语句

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

这工作得很好,并产生匿名类型的一个IQueryable。

不过,我的无法将其转换成IEnumerable的使用LINQ它作为AsEnumerable方法似乎缺少。 我不得不使用反射到底提取字段值

必须有一个更好的方法 - 任何帮助将是巨大的

谢谢

Answer 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();

要么

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

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


文章来源: Dynamic Linq Select -How to extract the results