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.

È stato utile?

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
scroll top