对象初始值设定项不在List <T>中工作

Jeb*_*bli 3 c# visual-studio-2005 c#-2.0

        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";
Run Code Online (Sandbox Code Playgroud)

上面的代码工作,但我想在我创建列表时初始化它,如下所示,

List<Car> oUpdateCar = new List<Car>
    {

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

    new Car{
        name = "Speed";
        value = "200";}
    }
Run Code Online (Sandbox Code Playgroud)

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

SLa*_*aks 6

集合和对象初始化器是C#3.0的新增功能; 它们不能在Visual Studio 2005中使用.

而且,即使在C#3中,这也是无效的语法; 您需要在对象初始值设定项中;使用逗号(,)替换分号(),并在集合初始值设定项中的每个对象之间添加逗号.


Dar*_*rov 6

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

List<Car> oUpdateCar = new List<Car>
{
    new Car
    {
        name = "Color",
        value = "red"
    },

    new Car
    {
        name = "Speed",
        value = "200"
    }
};
Run Code Online (Sandbox Code Playgroud)