2016-12-06 8 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" } 
}; 

言い換えれば...匿名型で作業するのは厄介です。

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

は私が選ぶだろう'class'の上にある' struct'のためのものです。 –

+0

@AlfieGoodacreいいえ。それはコンパイルされず、たとえそれが実行されたとしても、多重度を正しく表現することはできません。私は、私が提示したコードがJavaScriptのバージョンに最も近いことを維持しています。 –

+0

@MarcGravellはこの問題を解決してくれてありがとう、私はC#のドキュメントでこれが有効であると言っています。 、4,5}; ' - それは明示的な型付けのためだと思いますか? –

-1

これを試してください:あなたはおそらくIdName、代わりに使用しているタイプを宣言したい

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

'object'を追加すると、匿名型の型情報を捨てることになります。それは悪い考えです –

関連する問題