質問

あるハッシュテーブルの値を別のハッシュテーブルで更新するにはどうすればよいですか

2番目のハッシュテーブルに新しいキーが含まれている場合、それらを1番目に追加する必要があります。それ以外の場合は、1番目のハッシュテーブルの値を更新する必要があります。

役に立ちましたか?

解決

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

必要に応じて、これを拡張メソッドにロールできます(.NET 3.5以降を使用している場合)。

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

他のヒント

その上にあるいくつかのコード(辞書に基づく):

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

LINQを使用したよりエレガントなソリューションがあると確信しています(ただし、2.0でコーディングします;))。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top