تعريف HashMap
جزء من قسم Logic & Flow في رحلة C# على Coddy — الدرس 47 من 66.
في لغة C#، يُسمى المكافئ لـ HashMap بـ Dictionary. يتيح لك تخزين أزواج مفتاح-قيمة (key-value pairs) لإجراء عمليات بحث فعالة.
أولاً، لنقم بإنشاء قاموس (Dictionary) فارغ:
Dictionary<string, int> fruitInventory = new Dictionary<string, int>();يؤدي هذا إلى إنشاء قاموس (Dictionary) حيث تكون المفاتيح عبارة عن سلاسل نصية (strings) (أسماء الفواكه) والقيم عبارة عن أعداد صحيحة (integers) (الكمية).
الآن، دعنا نضيف بعض العناصر إلى القاموس (Dictionary) الخاص بنا:
fruitInventory.Add("Apple", 10);
fruitInventory.Add("Banana", 15);بعد تنفيذ الكود أعلاه، يحتوي fruitInventory على:
- "Apple" → 10
- "Banana" → 15
يمكنك أيضاً تهيئة Dictionary بالقيم:
Dictionary<string, int> fruitInventory = new Dictionary<string, int>()
{
{ "Apple", 10 },
{ "Banana", 15 }
};التحدي
متوسطقم بإنشاء دالة (method) باسم CreateFruitInventory تقوم بما يلي:
- إنشاء Dictionary جديد بمفاتيح من نوع string وقيم من نوع int
- إضافة الفواكه والكميات التالية:
- "Apple" بكمية 5
- "Banana" بكمية 10
- "Orange" بكمية 7
- إرجاع الـ Dictionary الذي تم إنشاؤه
ورقة مرجعية
في لغة #C، يقوم القاموس (Dictionary) بتخزين أزواج من المفاتيح والقيم للبحث الفعال:
إنشاء قاموس فارغ:
Dictionary<string, int> fruitInventory = new Dictionary<string, int>();إضافة عناصر إلى القاموس:
fruitInventory.Add("Apple", 10);
fruitInventory.Add("Banana", 15);تهيئة قاموس بالقيم:
Dictionary<string, int> fruitInventory = new Dictionary<string, int>()
{
{ "Apple", 10 },
{ "Banana", 15 }
};جرّب بنفسك
using System;
using System.Collections.Generic;
class Program
{
public static Dictionary<string, int> CreateFruitInventory()
{
// اكتب كودك هنا
}
static void Main(string[] args)
{
Dictionary<string, int> inventory = CreateFruitInventory();
// عرض المخزون
foreach (var item in inventory)
{
Console.WriteLine($"{item.Key}: {item.Value}");
}
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادتعريف وتهيئة المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفة ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادالمصفوفات المتعرجة (Jagged Arrays)عمليات المصفوفات الشائعةمراجعة - المصفوفات متعددة الأبعاد4تقنيات التحكم في التدفق
الإرجاع المبكرشروط الحمايةجمل القفز (goto)Break و Continueتسطيح الشروط المتداخلة7المعاملات المنطقية المتقدمة
التقييم المختصرالمعاملات المنطقية الشرطيةأولوية المعاملاتمراجعة - المعاملات المتقدمة2اتخاذ القرارات المتقدم
الشروط المتعددةالمنطق البولياني المعقدمقارنة بين If و Switchجمل Switch المتداخلةمراجعة - القرارات المتقدمة5معالجة الاستثناءات
أساسيات Try-Catchأنواع الاستثناءاتكتل Catch المتعددةالتعامل مع الملفاتكتلة FinallyUsing مقابل Try-Finallyاستثناءات مخصصةمراجعة - معالجة الأخطاء8نظام تحليل البيانات
إعداد جمع البياناتمنطق إدخال البيانات11HashSet الجزء الأول
ما هو الـ HashSet؟إضافة عنصرحذف عنصرالتحقق من وجود عنصرالفراغ والحجمملخص - HashSet3تحسينات الحلقات التكرارية
أداء الحلقات التكراريةالتكرار عبر البيانات المعقدةأنواع الحلقات التكراريةإعادة هيكلة الحلقات التكراريةملخص - الحلقات المحسنة6التعامل مع الـ Null
أساسيات الـ Null Referenceأنواع القيم القابلة للـ Nullأنماط التحقق من الـ Nullالبرمجة الدفاعيةملخص - أمان الـ Null9HashMap الجزء الأول
ما هو الـ HashMap؟تعريف HashMapالتحقق من وجود المفتاحالوصول إلى القيمتعديل القواميسملخص - HashMap