2016-12-06 5 views
-3

Я пытаюсь это сделать, но получаю синтаксические ошибки. Есть ли что-то, что я делаю неправильно? Должен ли я каждый раз создавать определенный класс для каждого из этих объектов?Ошибка при заполнении массива C#

var groups = [ 
    { id: 1, name: 'Conversation' }, 
    { id: 2, name: 'Business' }, 
    { id: 27, name: 'Animals' } 
]; 
+2

Похоже JavaScript для меня ... –

ответ

8

Это не C#; попробуйте:

var groups = new [] { 
    new { id = 1, name = "Conversation" }, 
    new { id = 2, name = "Business" }, 
    new { id = 27, name ="Animals" } 
}; 

Это говорит ... работа с анонимными типами неудобна; You вероятно хотите объявить тип, который имеет Id и Name и использовать вместо:

var groups = new [] { 
    new Foo { Id = 1, Name = "Conversation" }, 
    new Foo { Id = 2, Name = "Business" }, 
    new Foo { Id = 27, Name ="Animals" } 
}; 
... 
class Foo { 
    public int Id {get;set;} 
    public string Name {get;set;} 
} 
+0

я выбрал бы для 'struct' над' class'. –

+0

@AlfieGoodacre no; который не будет компилироваться, и даже если бы он это сделал: он не выражает множественность правильно. Я утверждаю, что код, который я представил, ближе всего к версии javascript –

+0

@MarcGravell благодарит меня за это, я схожу с того, что документация на C# говорит, что это допустимо: int [] numbers = {1, 2, 3 , 4, 5}; '- Думаю, это только для явного набора текста? –

-1

Попробуйте это:

var groups = new object[] { new { id=1, name="Conversation" }, 
new { id=1, name="Conversation" }, 
new { id=1, name="Conversation" } 
}; 
+2

добавление 'object' означает, что вы выбрасываете информацию типа re анонимного типа; это плохая идея –

Смежные вопросы