İkinci hashtable yeni anahtarlar içeriyorsa, bir hashtable değerini başka bir hashtable,güncelleme başka bir hashtable tarafından hashtable?
ile nasıl güncelleyebilirim, sonra 1. hashtable değerini güncellemelidir.
İkinci hashtable yeni anahtarlar içeriyorsa, bir hashtable değerini başka bir hashtable,güncelleme başka bir hashtable tarafından hashtable?
ile nasıl güncelleyebilirim, sonra 1. hashtable değerini güncellemelidir.
foreach (DictionaryEntry item in second)
{
first[item.Key] = item.Value;
}
Gerekirse bunu bir uzantı yöntemine dönüştürebilirsiniz (.NET 3.5 veya daha yeni kullandığınızı varsayarak).
Hashtable one = GetHashtableFromSomewhere();
Hashtable two = GetAnotherHashtableFromSomewhere();
one.UpdateWith(two);
// ...
public static class HashtableExtensions
{
public static void UpdateWith(this Hashtable first, Hashtable second)
{
foreach (DictionaryEntry item in second)
{
first[item.Key] = item.Value;
}
}
}
Bu, "ikinci hashtable, yeni anahtarlar içeriyorsa 1'e eklenmesi gerekiyorsa" gerekliliklerinden birini yakalamaz ve büyük olasılıkla bir istisna atar. – ParmesanCodice
@ParmesanCodice: Bu gereksinimi tam olarak karşılar *. Neden bunu deniyor ve kendin görmüyorsun? MSDN belgelerinden: "Ayrıca, Hashtable'da bulunmayan bir anahtarın değerini ayarlayarak yeni öğeler eklemek için Öğe özelliğini kullanabilirsiniz ... Ancak, belirtilen anahtar zaten Hashtable'da varsa, Öğe özelliğini ayarlama eski değerin üzerine yazıyor. " http://msdn.microsoft.com/en-us/library/system.collections.hashtable.item.aspx – LukeH
@Luke, özür dilerim Bu davranıştan haberdar değildim. – ParmesanCodice
(Sözlük göre) bu konuda bazı kod:
foreach (KeyValuePair<String, String> pair in hashtable2)
{
if (hashtable1.ContainsKey(pair.Key))
{
hashtable1[pair.Key] = pair.Value;
}
else
{
hashtable1.Add(pair.Key, pair.Value);
}
}
Ben LINQ kullanarak daha zarif bir çözüm var eminim (2.0 olsa da, kod;)).
Bize nasıl yardımcı olabileceğimizi görmek için bize gösterilecek herhangi bir kodunuz var mı? Başka bir deyişle, ne denediniz? –
Yani iki hash tablosunu birleştirmek mi istiyorsunuz? –
evet eski hashtable ile son. – shahjapan