Örnekleme üzerinde C # Sözlüğü'ne değerler nasıl eklenir?


149

Herkes ben oluştururken bir C # Sözlük değerleri eklemek bir yolu olup olmadığını biliyor mu? dict.Add(int, "string")Gibi daha verimli bir şey varsa, her öğe için yapabilirim, ama yapmak istemiyorum :

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

Yanıtlar:


199

Burada nasıl yapılacağı hakkında tüm sayfa var:

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

Misal:

Aşağıdaki kod örneğinde a Dictionary<TKey, TValue>, tür örnekleri ile başlatılır 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
Bu sadece .NET 3.5 derleyicisi üzerinde çalışıyor olsa da ... bunu aklınızda bulundurun.
— Adrian Godong

@ kd7iwp - sorun değil, bu sitenin işlevinin bir kısmı böylece alternatif arama terimleri yararlı bir şeye yönlendirilebilir.
— Daniel Earwicker

Evet, bu Microsoft için oldukça önemli. Yıllar boyunca geriye dönük uyumluluk konusunda oldukça kararlılar.
— PRMan

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

13

Neredeyse oradaydınız:

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

10

Lambda ifadelerini, diğer IEnumerable nesnelerinden herhangi bir Anahtar Değer çifti eklemek için de kullanabilirsiniz. Anahtar ve değer istediğiniz herhangi bir tür olabilir.

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

.NET'te her yerde IEnumerable nesnelerini kullandığınız için çok daha basit buluyorum

Umarım yardımcı olur!!!

Tad.


7

Bir sözlük başlatabilir ve buna şu şekilde öğeler ekleyebilirsiniz:

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

7

Bildiğiniz gibi C # 6'dan itibaren şu şekilde başlatabilirsiniz

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

Çok daha temiz :)


-1

Umarım mükemmel çalışır.

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


Merhaba, SO'ya hoş geldiniz! Başlangıçta bu soruyu soran kişi özellikle .Add(int, "string")bir sözlüğe değer ekleme yöntemini yapmak istemediklerini söyledi . Üzgünüm ama bu soruya cevap vermiyor.
— Kezz101

-2

Bu genellikle tavsiye edilmez, ancak belirsiz kriz zamanlarında kullanabilirsiniz

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"];
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.