LINQ中的动态新字段

kos*_*kov 2 c# linq linq-to-entities entity-framework

这是否可以new {variable = x.something}动态创建和指定变量名称?例如:

var name = "dynamicName"; 
var result = context.select(x=> new {name.ToString() = x.something })
Run Code Online (Sandbox Code Playgroud)

通过这种方式,我们将得到一个列表,其中属性名称为dynamicName.这有可能吗?

Tho*_*que 5

对于匿名类型,这是不可能的,因为匿名类型不是动态的.它们必须在编译时完全定义.但是,您可以使用动态对象,如ExpandoObject:

var name = "dynamicName"; 
var result = context.Select(x =>
                            {
                                var exp = new ExpandoObject() as IDictionary<string, object>;
                                exp[name] = x.something;
                                return (dynamic)exp;
                            });
Run Code Online (Sandbox Code Playgroud)