动态Linq选择-如何提取结果 [英] Dynamic Linq Select -How to extract the results

查看:73
本文介绍了动态Linq选择-如何提取结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个动态的Linq Select语句,形式为

I have a dynamic Linq Select statement of the form

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

这可以正常工作,并产生一个匿名类型的IQueryable.

This works fine and produces an IQueryable of Anonymous types.

但是我无法将其转换为IEnumerable以在其上使用linq,因为AsEnumerable方法似乎丢失了.我不得不使用反射来最终提取字段值

However I an unable to convert it into IEnumerable to use linq on it as AsEnumerable method seems to be missing. I had to use reflection to extract field values in the end

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

There must be a better way - Any help would be great

谢谢

推荐答案

您可以尝试这样的事情

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

这篇关于动态Linq选择-如何提取结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆