web-dev-qa-db-ja.com

インスタンス化時にC#辞書に値を挿入する方法は?

作成時にC#辞書に値を挿入できる方法があるかどうかは誰にもわかりますか?次のようなより効率的なものがある場合は、各アイテムに対してdict.Add(int, "string")を実行できますが、したくありません:

Dictionary<int, string>(){(0, "string"),(1,"string2"),(2,"string3")};
144
kd7iwp

ここでそれを行う方法についてのページ全体があります:

http://msdn.Microsoft.com/en-us/library/bb531208.aspx

例:

次のコード例では、Dictionary<TKey, TValue>StudentName型のインスタンスで初期化されます:

var students = new Dictionary<int, StudentName>()
{
    { 111, new StudentName {FirstName="Sachin", LastName="Karnik", ID=211}},
    { 112, new StudentName {FirstName="Dina", LastName="Salimzianova", ID=317}},
    { 113, new StudentName {FirstName="Andy", LastName="Ruth", ID=198}}
};
188
Dictionary<int, string> dictionary = new Dictionary<int, string> { 
   { 0, "string" }, 
   { 1, "string2" }, 
   { 2, "string3" } };
44
Timothy Carter

あなたはほとんどそこにいました:

var dict = new Dictionary<int, string>()
{ {0, "string"}, {1,"string2"},{2,"string3"}};
11
Henk Holterman

Lambda式を使用して、他のIEnumerableオブジェクトからキーと値のペアを挿入することもできます。キーと値には、任意のタイプを指定できます。

Dictionary<int, string> newDictionary = 
                 SomeList.ToDictionary(k => k.ID, v => v.Name);

.NETのすべての場所でIEnumerableオブジェクトを使用するので、はるかに簡単です。

それが役立つことを願っています!!!

ちょっと.

9
matendie

次のように辞書をインスタンス化し、それに項目を追加できます。

var dictionary = new Dictionary<int, string>
    {
        {0, "string"},
        {1, "string2"},
        {2, "string3"}
    };
6
Joseph

C#6の時点で次のように初期化できます。

var students = new Dictionary<int, StudentName>()
{
    [111] = new StudentName {FirstName="Sachin", LastName="Karnik", ID=211},
    [112] = new StudentName {FirstName="Dina", LastName="Salimzianova", ID=317},
    [113] = new StudentName {FirstName="Andy", LastName="Ruth", ID=198}
};

はるかにきれい:)

6
russelrillema

これは一般的に推奨されませんが、不確実な危機の場合には使用できます

Dictionary<string, object> jsonMock = new Dictionary<string, object>() { { "object a", objA }, { "object b", objB } };

// example of unserializing
ClassForObjectA anotherObjA = null;
if(jsonMock.Contains("object a")) {
    anotherObjA = (ClassForObjA)jsonMock["object a"];
}
0
Jacksonkr