두 번째 해시 테이블에 새 키가있는 경우다른 해시 테이블로 해시 테이블을 업데이트 하시겠습니까?
두 번째 해시 테이블에 첫 번째 해시 테이블에 추가해야하는 경우 첫 번째 해시 테이블의 값을 업데이트해야합니다.
두 번째 해시 테이블에 새 키가있는 경우다른 해시 테이블로 해시 테이블을 업데이트 하시겠습니까?
두 번째 해시 테이블에 첫 번째 해시 테이블에 추가해야하는 경우 첫 번째 해시 테이블의 값을 업데이트해야합니다.
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;
}
}
}
"두 번째 해시 테이블에 새 키가 들어 있으면 1 위에 추가해야합니다."예외가 발생합니다. – ParmesanCodice
@ParmesanCodice : 해당 요구 사항을 정확히 충족합니다. 너는 그것을 시도하고 너 자신을 위해 보지 않는가? MSDN 설명서에서 "Item 속성을 사용하여 Hashtable에없는 키 값을 설정하여 새 요소를 추가 할 수도 있습니다. 그러나 지정된 키가 이미 Hashtable에있는 경우 Item 속성을 설정합니다 이전 값을 덮어 씁니다. " http://msdn.microsoft.com/en-us/library/system.collections.hashtable.item.aspx – LukeH
@ 루케, 나의 사과 나는이 행동을 몰랐다. – ParmesanCodice
(사전 기준)이 일부 코드 :
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하지만, 나는 코드)).
우리가 보여줄 수있는 코드가 있습니까? 다시 말해, 무엇을 시도 했습니까? –
그래서 두 개의 해시 테이블을 병합하려고하십니까? –
정확하게 예전의 해시 테이블이 최신 버전입니다. – shahjapan