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

时间:2011-04-26 19:14:42

标签: c# javascript 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"}
};

编译器抛出:

"An anonymous type cannot have multiple properties with the same name"

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

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

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

1 个答案:

答案 0 :(得分: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"}
};

你应该可以像这样访问匿名类数组

if (obj[0].align == "left")
{
   ...
}