سؤال

وكيف يمكنني تحديث قيم جدول هاش احدا تلو جدول هاش آخر،

وإذا جدول هاش الثاني يحتوي على مفاتيح جديدة بعد ذلك يجب أن تضاف إلى 1 آخر يجب تحديث قيمة جدول هاش 1ST.

هل كانت مفيدة؟

المحلول

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