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

本文关键字:问题 创建对象 类型 | 更新日期: 2023-09-27 17:53:20

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

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

你能试试吗?

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")
{
   ...
}