如何创建C#动态对象?

zer*_*law 1 c# linq dynamic object

在 C# 中,我需要创建一个返回一个对象的函数,该对象可能包括:

{ itemID: "A1", itemDesc: "apple" } 
Run Code Online (Sandbox Code Playgroud)

或者

{ groupID: "G1", groupDesc: "group1" } ..etc

// Please don't be concerned about why don't create another function for this,
// or why don't consider 'ID' instead.
Run Code Online (Sandbox Code Playgroud)

我好奇。原因是,这在 javascript 中很简单,因为您可以将任何键分配给一个对象,而无需预先定义它。

然而,当谈到 C# 时,我感到困惑。

这可能吗?

编辑:

对不起,我应该更清楚地说明问题(所以它可能不是“重复”)

我的函数实际上返回一个类,如下所示:

public class MyClass 
{
    public int myKey {get;set;}
    public List<customClass> listRecord {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

customClass是我所指的动态“对象”。请注意,记录是从 LINQ 查询的。

感谢您的建议,但我似乎无法做到这一点:

var result = (from a in db.MyTable
              select new System.Dynamic.ExpandoObject()
              {
                 ....
Run Code Online (Sandbox Code Playgroud)

我也不能 select new dynamic

LS.*_*ord 5

您可能需要 ExpandoObject 类:

dynamic temp = new ExpandoObject();
temp.member1= "aha";
temp.member2= 1234;
Run Code Online (Sandbox Code Playgroud)

https://msdn.microsoft.com/en-us/library/system.dynamic.expandoobject(v=vs.110).aspx

匿名类一旦定义就无法更改。ExpandoObject 更接近 javascript 对象。