Come inserire valori nel dizionario C # all'istanza?


Risposte:


200

C'è un'intera pagina su come farlo qui:

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

Esempio:

Nel seguente esempio di codice, a Dictionary<TKey, TValue>viene inizializzato con istanze di tipo 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}}
};

3
Funziona solo con il compilatore .NET 3.5 però ... tienilo a mente.
Adrian Godong,

@ kd7iwp - nessun problema, parte della funzione di questo sito è che i termini di ricerca alternativi possono essere indirizzati a qualcosa di utile.
Daniel Earwicker,

Sì, è praticamente un dato di fatto con Microsoft. Nel corso degli anni si sono impegnati piuttosto nella retrocompatibilità.
PRMan,

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

13

Eri quasi lì:

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

10

Puoi anche usare espressioni Lambda per inserire coppie di valori chiave da qualsiasi altro oggetto IEnumerable. Chiave e valore possono essere di qualsiasi tipo tu voglia.

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

Trovo che sia molto più semplice poiché usi gli oggetti IEnumerable ovunque in .NET

Spero che aiuti!!!

Tad.


7

È possibile creare un'istanza di un dizionario e aggiungere elementi in questo modo in questo modo:

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

7

Solo così sai da C # 6 ora puoi inizializzarlo come segue

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}
};

Molto più pulito :)


-1

Spero che funzioni perfettamente.

Dictionary<string, double> D =new Dictionary<string, double>(); D.Add("String", 17.00);


Ciao, benvenuto in SO! La persona che originariamente ha posto questa domanda ha affermato espressamente di non voler applicare il .Add(int, "string")metodo per aggiungere valori a un dizionario. Ci dispiace ma questo non risponde alla domanda.
Kezz101

-2

Questo non è generalmente raccomandato, ma in tempi di crisi incerte è possibile utilizzare

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"];
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.