如何使用没有父类的内联变量声明内联对象

dea*_*ock 46 c#

我想做的事情如下:

Object [] x = new Object[2];

x[0]=new Object(){firstName="john";lastName="walter"};
x[1]=new Object(){brand="BMW"};
Run Code Online (Sandbox Code Playgroud)

我想知道是否有办法在C#中实现内联声明

hun*_*ter 98

就在这里:

object[] x = new object[2];

x[0] = new { firstName = "john", lastName = "walter" };
x[1] = new { brand = "BMW" };
Run Code Online (Sandbox Code Playgroud)

你实际上在那里,只是匿名类型声明有点偏.

  • 如果您使用的是C#4.0,则可以使用"dynamic"关键字来完成您想要的任务.否则,您可能需要使用Dictionary <string,string>.从历史上看,C#在您尝试的动态类型方面并不是很好. (6认同)
  • 匿名类型是......匿名的 - 你只能将它们与var一起使用,或者在C#4中使用`dynamic`类型,否则你将不得不创建一个类实例,它的工作方式相同,只需在`new之后添加类名`并让该类公开适当的公共属性 (4认同)

Jai*_*der 7

您还可以这样做:

var x = new object[] {
    new { firstName = "john", lastName = "walter" },
    new { brand = "BMW" }
};
Run Code Online (Sandbox Code Playgroud)

如果它们是相同的匿名类型(名字和姓氏),则不需要强制转换为object.

var y = new [] {
    new { firstName = "john", lastName = "walter" },
    new { firstName = "jill", lastName = "white" }
};
Run Code Online (Sandbox Code Playgroud)