البرمجة

الفروق بين قواميس C#

لحساب الفروق بين القيمتين الموجودتين في القواميس، يمكنك استخدام الكود التالي في C#:

csharp
using System; using System.Collections.Generic; class Program { static void Main() { Dictionary<int, int> a = new Dictionary<int, int>(); Dictionary<int, int> b = new Dictionary<int, int>(); a.Add(1, 1); a.Add(2, 2); a.Add(3, 3); b.Add(1, 1); b.Add(2, 2); Dictionary<int, int> difference = new Dictionary<int, int>(); // Find keys in a that are not in b foreach (var kvp in a) { if (!b.ContainsKey(kvp.Key)) { difference.Add(kvp.Key, kvp.Value); } } // Find keys in b that are not in a foreach (var kvp in b) { if (!a.ContainsKey(kvp.Key)) { difference.Add(kvp.Key, kvp.Value); } } // Output the difference foreach (var kvp in difference) { Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}"); } } }

هذا الكود يستخدم حلقتين foreach لفحص كل قيمة في القاموس a و b بحثاً عن الفروق. إذا كانت القيمة غير موجودة في أحد القواميس، يتم إضافتها إلى القاموس difference الذي يمثل الفروق النهائية بين القواميس.

سيتم طباعة الفروق في نهاية الكود.

المزيد من المعلومات

بالتأكيد! إليك بعض المعلومات الإضافية حول الحلقتين foreach:

  1. Foreach على القواميس (Dictionaries):

    • في الحلقة foreach، يتم تحليل القاموس a و b عن طريق العناصر الرئيسية (KeyValuePair)، حيث يتم تمثيل كل مفتاح (Key) وقيمته (Value) في القاموس.
    • يتم استخدام ContainsKey للتحقق مما إذا كان المفتاح موجودًا في القاموس الآخر أم لا.
  2. القاموس difference:

    • يستخدم القاموس difference لتخزين الفروق بين القواميس a و b.
    • في حلقتي foreach، إذا كان المفتاح غير موجود في القاموس الآخر، يتم إضافته إلى القاموس difference مع قيمته المقابلة.
  3. إخراج الفروق:

    • في نهاية الكود، يتم طباعة الفروق بين القواميس a و b باستخدام حلقة foreach أخرى.
    • لكل مفتاح وقيمته في القاموس difference، يتم طباعة “Key: ” تليها قيمة المفتاح، وبعدها “Value: ” تليها قيمة المفتاح في القاموس الأصلي.

هذا الكود يوضح كيفية استخدام الحلقات foreach لمقارنة العناصر بين القواميس واستخراج الفروق بينها.

زر الذهاب إلى الأعلى