aggiornare hashtable da un'altra hashtable?
-
10-07-2019 - |
Domanda
Come posso aggiornare i valori di una hashtable con un'altra hashtable,
se la seconda tabella hash contiene nuove chiavi, è necessario aggiungerle alla prima altrimenti dovrebbe aggiornare il valore della prima tabella.
Soluzione
foreach (DictionaryEntry item in second)
{
first[item.Key] = item.Value;
}
Se necessario, puoi inserirlo in un metodo di estensione (supponendo che tu stia utilizzando .NET 3.5 o versioni successive).
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;
}
}
}
Altri suggerimenti
Qualche codice su questo (basato sul Dizionario):
foreach (KeyValuePair<String, String> pair in hashtable2)
{
if (hashtable1.ContainsKey(pair.Key))
{
hashtable1[pair.Key] = pair.Value;
}
else
{
hashtable1.Add(pair.Key, pair.Value);
}
}
Sono sicuro che ci sia una soluzione più elegante usando LINQ (sebbene, io codice in 2.0;)).
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow