【问题标题】:Object initializers not working in List<T>对象初始化器在 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。请帮忙。

【问题讨论】:

    标签: c# visual-studio-2005 c#-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,根据你的建议修改了我的帖子。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-07
    • 2016-08-22
    • 1970-01-01
    • 2013-06-27
    • 2023-03-23
    • 1970-01-01
    • 2021-04-05
    相关资源
    最近更新 更多