Yeni Ekle veya varolan bir maddeyi güncelleştirmek için yöntem Sözlüğü
Bazı eski kod, anahtarı zaten varsa, aşağıdaki uzantısı yöntemi anahtar-değer yeni bir madde ekleme veya değer güncellenmesi kolaylaştırmak için görmek zorundayım.
Yöntem-1 (eski kod).
public static void CreateNewOrUpdateExisting<TKey, TValue>(
this IDictionary<TKey, TValue> map, TKey key, TValue value)
{
if (map.ContainsKey(key))
{
map[key] = value;
}
else
{
map.Add(key, value);
}
}
Gerçi, map[key]=value
aynı iş yok kontrol ettim. Bu yöntem 2 aşağıdaki ile değiştirin olabilir.
Yöntem-2.
public static void CreateNewOrUpdateExisting<TKey, TValue>(
this IDictionary<TKey, TValue> map, TKey key, TValue value)
{
map[key] = value;
}
Şimdi sorum şu.. Yöntem 2 Yöntem-1 yerine eğer herhangi bir sorun Olabilir mi? Herhangi bir olası senaryoda kıracak?
Ayrıca, bu karma tablo ve Sözlük arasındaki fark eskiden sanırım. Karma tablo bir öğe güncelleme veya Sözlük etmese oluşturucu kullanarak yeni bir madde ekleyerek sağlar!! Bu fark, C elimine# >3.0 versiyon mu?
Amaç bu yöntem değil, fazla bile istisna eğer kullanıcı gönderir aynı anahtar değeri yine, bu yöntem sadece güncelleme girişi ile yeni değeri, ve yeni bir giriş eğer yeni bir anahtar-değer çifti oldu göndermek için yöntem.
CEVAP
Yöntem 2 Yöntem-1 yerine eğer herhangi bir sorun olabilir mi?
Hayır, sadece map[key] = value
kullanın. İki seçenek eşdeğerdir.
İlgili Dictionary<>
vs Hashtable
: ne Zaman başlıyorsun Reflektör, gördüğünüz oluşturucu belirleyiciler de sınıflar Ara this.Insert(key, value, /* add */ false);
add
parametre sorumludur atma istisna eklerken yinelenen bir anahtar. Yani bu davranış, her iki sınıf için aynıdır.
Nasıl bir Jquery fonksiyonu (yeni bir ...
Nasıl baskı yeni satır veya boşluk olm...
C typedef anahtar kelimesi için Java e...
Nasıl Android bir TextView için bir ye...
Görüş Düzenine Kafa veya kısmi manzara...