Frage

Wie kann ich die Werte einer Hash-Tabelle von einer anderen Hash-Tabelle aktualisieren,

, wenn der zweite Hash-Tabelle neue Schlüssel enthält, dann müssen sie bis zum 1. hinzugefügt werden sonst sollte den Wert des ersten Hash-Tabelle aktualisieren.

War es hilfreich?

Lösung

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

erforderlich Wenn Sie diese in eine Erweiterung Methode rollen könnten (vorausgesetzt, dass Sie .NET 3.5 oder höher verwenden).

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

Andere Tipps

Einige Code auf, dass (basierend auf Dictionary):

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

Ich bin sicher, dass es eine elegantere Lösung mit LINQ (obwohl ich Code in 2.0;)).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top