对象初始化器在 List<T> 中不起作用

Posted

技术标签:

【中文标题】对象初始化器在 List<T> 中不起作用【英文标题】:Object initializers not working in List<T> 【发布时间】:2010-04-19 12:45:52 【问题描述】:
        List<Car> oUpdateCar = new List<Car>();

        oUpdateCar.Add(new Car());
        oUpdateCar[0].name = "Color";
        oUpdateCar[0].value = "red";

        oUpdateCar.Add(new Car());
        oUpdateCar[1].name = "Speed";
        oUpdateCar[1].value = "200";

上面的代码正在运行,但我想在创建如下列表时对其进行初始化,

List<Car> oUpdateCar = new List<Car>
    

        new Car
        name = "Color";
        value = "red";

    new Car
        name = "Speed";
        value = "200";
    

上面的代码不起作用。我错过了什么。我正在使用 c# .NET 2.0。请帮忙。

【问题讨论】:

【参考方案1】:

集合和对象初始值设定项是 C# 3.0 的新内容;它们不能在 Visual Studio 2005 中使用。

此外,即使在 C# 3 中,这也是无效的语法;您需要将对象初始化器中的分号 (;) 替换为逗号 (,),并在集合初始化器中的每个对象之间添加逗号。

【讨论】:

c# 2.0 有什么替代方案吗?【参考方案2】:

集合初始化器是 C# 3.0 的一部分,语法如下:

List<Car> oUpdateCar = new List<Car>

    new Car
    
        name = "Color",
        value = "red"
    ,

    new Car
    
        name = "Speed",
        value = "200"
    
;

【讨论】:

在使用 c# 2.0 时有什么方法可以做到这一点,或者是否可以在 vs 2005 中使用 c# 3.0? @Jebli,不,没有。 C# 2.0 编译器不理解集合初始值设定项。 @Nick,根据你的建议修改了我的帖子。

以上是关于对象初始化器在 List<T> 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

地图删除器在 C++ 中不起作用?

为啥我的 jQuery :not() 选择器在 CSS 中不起作用?

为啥我的 jQuery :not() 选择器在 CSS 中不起作用?

jquery图像选择器在IE7中不起作用

MVC2:日期选择器在编辑器模板中不起作用

Jquery日期时间选择器在弹出窗口中不起作用