我正在尝试构建一个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似乎解决了以前版本的问题。
答案 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")
{
...
}