別のハッシュテーブルでハッシュテーブルを更新しますか?
-
10-07-2019 - |
質問
あるハッシュテーブルの値を別のハッシュテーブルで更新するにはどうすればよいですか
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でコーディングします;))。
所属していません StackOverflow