Инициализаторы объектов не работают в Списке <T> - PullRequest
3 голосов
/ 19 апреля 2010
        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. Пожалуйста, помогите.

Ответы [ 2 ]

6 голосов
/ 19 апреля 2010

Инициализаторы коллекций являются частью C # 3.0, и синтаксис такой:

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

    new Car
    {
        name = "Speed",
        value = "200"
    }
};
6 голосов
/ 19 апреля 2010

Инициализаторы коллекций и объектов являются новыми для C # 3.0; их нельзя использовать в Visual Studio 2005.

Кроме того, это недопустимый синтаксис даже в C # 3; необходимо заменить точку с запятой (;) запятыми (,) внутри инициализаторов объектов и добавить запятую между каждым объектом в инициализаторе коллекции.

...