Question

Comment puis-je mettre à jour les valeurs d'une hashtable par une autre hashtable,

Si la seconde table de hachage contient de nouvelles clés, elles doivent être ajoutées à la première option, sinon la valeur de la première hashtable doit être mise à jour.

Était-ce utile?

La solution

foreach (DictionaryEntry item in second)
{
    first[item.Key] = item.Value;
}

Si nécessaire, vous pouvez utiliser cette méthode d'extension (en supposant que vous utilisez .NET 3.5 ou une version plus récente).

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

Autres conseils

Certains codes sur celui-ci (basé sur Dictionnaire):

        foreach (KeyValuePair<String, String> pair in hashtable2)
        {
            if (hashtable1.ContainsKey(pair.Key))
            {
                hashtable1[pair.Key] = pair.Value;
            }
            else
            {
                hashtable1.Add(pair.Key, pair.Value);
            }
        }

Je suis sûr qu'il existe une solution plus élégante avec LINQ (cependant, je code en 2.0;)).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top