在c#中使用匿名类型创建对象文字的问题

Gra*_*ett 3 javascript c# asp.net-mvc anonymous-types object-literal

我正在尝试构建一个JavaScript对象文字的c#近似值,以传递给asp.net MVC中的视图模型:

var obj = new dynamic[]{
    new { name: "Id", index: "Id", width: 40, align: "left" },
    new { name: "Votes", index: "Votes", width: 40, align: "left" },
    new { name: "Title", index: "Title", width: 200, align: "left"}
};
Run Code Online (Sandbox Code Playgroud)

编译器抛出:

"An anonymous type cannot have multiple properties with the same name"
Run Code Online (Sandbox Code Playgroud)

在黑暗中刺戳我猜它无法区分哪个属性与哪个匿名对象,我看到使用LINQ的类似错误.

有没有更好的方法来完成我想要做的事情?

编辑:这是在VisualStudio 2010和.net Framework 4中.Bala R的答案似乎解决了以前版本的问题.

Bal*_*a R 6

你能试试吗?

var obj = new[]{
    new { name= "Id", index= "Id", width= 40, align= "left" },
    new { name= "Votes", index= "Votes", width= 40, align= "left" },
    new { name= "Title", index= "Title", width= 200, align= "left"}
};
Run Code Online (Sandbox Code Playgroud)

你应该能够像这样访问匿名类数组

if (obj[0].align == "left")
{
   ...
}
Run Code Online (Sandbox Code Playgroud)