обновить хеш-таблицу другой хеш-таблицей?
-
10-07-2019 - |
Вопрос
Как я могу обновить значения одной хеш-таблицы другой хеш-таблицей,
если вторая хеш-таблица содержит новые ключи, то они должны быть добавлены к 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