2011-02-01 7 views
0

これは私の辞書です。辞書にハードコードされた値を与える方法

Dictionary<string, Test> test = new Dictionary<string, Test>(); 

私はId、Name、Scoreを持っています。私はハードコードされた値でこれらのプロパティを埋めたい(複数のカウント)。私はこのように与えるべきかどうか辞書

に静的な値を与えるためにどのように

...

Dictionary<string, Test> test= new Dictionary<string, Test>(); 
Groups groups = new Groups(); 
groups.Id = "1"; 
groups.Name = "Name"; 
groups.Description = "Desc"; 
test.Add(groups.Id, groups); 

答えて

1

あなたがC#3 & 4に構文初期化剤のコレクションを使用することができます。

var data = new Dictionary<String,Object> { 
    { "Foo", "Bax" }, 
    { "Bar", new DateTime(2010,10,10) }, 
    { "Xyzzy", 42 } 
}; 

:T彼は質問コードを更新:

Dictionary<string, Test> test= new Dictionary<string, Groups> { 
    { 
    "1", new Groups { 
     Id = "1", 
     Name = "Name", 
     Description = "Desc" 
    } 
    }, { 
    "2", new Groups { 
     Id = "2", 
     Name = "Another Name", 
     Description = "Something  } 
    } 
}; 
+0

Dictionary<string, Test> test= new Dictionary<string, Test>(); Groups groups = new Groups(); groups.Id = "1"; groups.Name = "Name"; groups.Description = "Desc"; test.Add(groups.Id, groups); 

は、単一の式(も値型はGroupsであるように思わ注目し、かつ複数のキーと値のペアを追加する方法を示す)として再書き込むことができます私はこれを与えるべきかどうか........ Dictionary test = new Dictionary (); varデータ=新しい辞書<文字列、テスト> { {1、 "A"、A "}、 {2、" B "、" B "}、 }; – RobinHood

+0

私は上記のコードを更新しました。私はそれを与えるべきです... – RobinHood

+0

@RobinHood:いいえ、それは動作しません。内括弧の最初のメンバーはキーであり、2番目のメンバーは値です。各ペアの第2のメンバは、 'Test'の定義に依存する' Test'を初期化できる必要があります。最も簡単な方法は、コンストラクタを呼び出すことです。リテラルは、適切な暗黙の変換が定義されている場合にも機能します。 – Richard

関連する問題