‫في هذا الدرس ، سنغطي جداول التجزئة وسننظر أيضًا في القواميس لاحقًا.
‫لذا فإن جداول التجزئة والقواميس هي بعض أكثر المجموعات فائدة في لغة سي شارب.
‫لذلك سوف نرى كيفية تحديدها وكيفية استخدامها وفي هذه الحالة ، يجب أن نستفيد
‫منها.
‫لفهم مفهوم التجزئة والجداول.
‫أولاً ، فكر في قاموس حقيقي.
‫لذا افترض أن لدينا قاموسًا ألمانيًا وإنكليزيًا حيث تتوافق كل كلمة في الألمانية مع كلمة واحدة فقط في اللغة
‫الإنجليزية ، لأن ذلك من شأنه أن يحد من التحديد هنا.
‫لذلك عندما نحاول ترجمة كلمة auto ، والتي تُترجم بالألمانية إلى car باللغة الإنجليزية ، فإننا
‫نستخدم كلمة واحدة ككلمة رئيسية يمكننا البحث عنها ، على سبيل المثال ، ونتيجة لذلك حصلنا على ترجمة واحدة.
‫إذن ، هناك دائمًا علاقة 1 إلى 1.
‫لذلك لدينا تلقائي وهذا يترجم إلى سيارة ويمكننا تحقيق ذلك بالضبط باستخدام جداول التجزئة.
‫وسنستخدم هذا في مثال محدد للغاية هنا.
‫لنفترض أن لدينا نظام تسجيل طالب حيث يمتلك كل طالب بطاقة هوية والعديد من البيانات الأخرى
‫مثل الاسم والعمر والدرجات والصورة وما إلى ذلك.
‫لكي يعمل مثل هذا النظام ، سنحتاج إلى معرف خاص لكل طالب على حدة.
‫لذلك يجب أن تكون فريدة من نوعها.
‫إذا كان علينا تخزين هذه البيانات باستخدام جدول تجزئة أو قاموس ، فسيكون معرف الطالب هو المفتاح
‫وستكون بيانات الطالب كائنًا يحتوي على جميع معلومات الطالب الأخرى وستكون هذه هي القيمة.
‫لذلك لدينا دائمًا زوج القيمة هذا.
‫هذه هي الطريقة التي يمكنك من خلالها العثور على البيانات الفعلية ، إذا جاز التعبير ، وهذه هي القيمة الكامنة وراءها.
‫حتى تتمكن من رؤيته مثل الخزانة.
‫إذن هذا هو معرف الخزانة أو موقع الخزانة.
‫يمكن أن تكون أنواعًا مختلفة من أنواع البيانات.
‫ليس من الضروري أن يكون معرّفًا وستكون هذه هي القيمة.
‫لذا ، يجب أن يكون القاموس من نفس النوع في جدول تجزئة.
‫يمكن أن تكون من أنواع مختلفة.
‫لذلك يمكن أن يكون هذا عددًا صحيحًا ويمكن أن يكون كائنًا ، على سبيل المثال.
‫لذلك سننظر إلى جداول التجزئة أولاً.
‫لذلك ، سننشئ فصلًا جديدًا أو في الواقع لقد أعددت فصلًا جديدًا لهذا.
‫دعنا نضعها هنا.
‫ولها خاصيتان.
‫لديها خاصية معرف ، وخاصية الاسم والمعدل التراكمي.
‫ثم لدينا منشئ بسيط للغاية يقوم ببساطة بتعيين القيمة.
‫لذا ، أيًا كان المعرف الذي نمرره إلى كائن الطالب عند إنشائه ، فسيكون معرف كائن الطالب وما
‫إلى ذلك.
‫لذلك لا يوجد شيء رائع هنا.
‫نحن فقط نستخدم فصل دراسي عادي كما غطينا في فصل الفصل.
‫يمكننا الآن بالطبع المضي قدمًا وإنشاء هذا الفصل في ملف منفصل حتى نتمكن من المضي
‫قدمًا وفتح مستكشف الحلول لدينا.
‫انطلق وأنشئ ملفًا جديدًا هنا.
‫لذا أضف عنصرًا جديدًا أو فصلًا جديدًا مثل ذلك واسمه طالبًا.
‫لكن في هذا المثال ، سأبقيه بسيطًا وأضعه في ملف واحد.
‫كما تعلم ، من الأفضل وضعه في ملف منفصل حتى لا تخلط الأشياء ويمكنك العثور
‫بسهولة على الملفات والفئات وكل ذلك.
‫حسنًا ، والآن بعد أن أصبح لدينا فصل الطلاب ، يمكننا المضي قدمًا وإنشاء جدول تجزئة.
‫لذلك داخل برنامجنا هنا ، في الطريقة الرئيسية ، حيث سأقوم بتعريف
‫جدول تجزئة جديد وسيكون جدول تجزئة مشابه لذلك.
‫وسأطلق على هذا الجدول الواحد ، والذي سيكون جدول تجزئة جديد.
‫توجد فئة جدول التجزئة داخل مجموعات النظام ، لذلك نحتاج إلى إضافة مساحة الاسم هذه هنا باستخدام
‫مجموعات النظام.
‫إذن جدول التجزئة يختلف عن مساحة اسم جداول التجزئة لأن هذه هي الطريقة التي اتصلت
‫بها ، مما قد يربك معرفنا هنا إذا أردنا إدخال جدول التجزئة دون إضافة مساحة الاسم هذه إلى مشروعنا.
‫ولكن الآن بعد أن أصبح لدينا داخل فصل برامجنا ، يمكننا استخدامه.
‫إذن لدينا جدول التجزئة الجديد هذا والذي سيكون الآن جدول بيانات ، ويمكننا وضع البيانات التي نريدها
‫هناك.
‫هذه هي الطريقة التي يمكنك بها إنشاء جدول التجزئة هذا ، وكيف يمكنك تهيئته باستخدام كائن جدول تجزئة
‫فارغ كما فعلنا هنا.
‫والآن ما يمكننا القيام به هو أنه يمكننا تعيين قيم لجدول التجزئة هذا ، ويمكننا حتى تسميته جدول الطالب
‫لجعل الكود الخاص بنا أكثر قابلية للقراءة.
‫الآن نحن بحاجة فقط إلى إنشاء مجموعة من الطلاب الذين نريد أن يكونوا في طاولتنا.
‫لذا اسمحوا لي أن أضيف هؤلاء هنا أيضًا.
‫سأسميهم الإحصاء الأول ، 2 إلى 3 ، الخطوة الرابعة ، وسيكونون جميعًا كائنات طلابية جديدة.
‫لذلك هنا سيكون هذا طالبًا يحمل بطاقة الهوية ، وستكون ماريا.
‫لديها معدل تراكمي 98.
‫ثم لدينا JSON الذي سيكون له معرف واحد.
‫هذا هو المعرف هنا ، المعرف الفريد ، إذا جاز التعبير ، ثم المعدل التراكمي للطلاب.
‫تمام.
‫إذن لدينا الآن كل هؤلاء الطلاب ويمكننا تخصيصهم لجدول طلابنا باستخدام معرف الطلاب.
‫وتتمثل الممارسة الجيدة في المضي قدمًا والبقاء على جدول الطلاب إضافة نقطة ، وهنا نستخدم
‫بطاقة هوية الطالب ، لذا فهذه الخاصية هنا كمفتاح.
‫لذلك يمكنك أن ترى هنا جدول تجزئة يسمح لنا بالحصول على مفتاح من نوع الكائن بحيث يمكن أن يكون
‫أي نوع من الكائنات كمفتاح ويمكن أن يكون كائنًا اختياريًا أو يمكن معرفته كقيمة.
‫لذلك يمكننا إسناد قيمة أو يمكن أن تكون خالية.
‫حسنًا ، لكننا سنخصص قيمة وسيكون الطالب نفسه على هذا النحو.
‫والآن أضفنا طالبًا واحدًا إلى طاولة طلابنا ويمكننا فعل الشيء نفسه مع الطلاب الآخرين
‫وسنستخدم معرفهم لكل واحد منهم.
‫لذلك دعونا نستخدم طاولة الطلاب هنا لجميعهم.
‫تمام.
‫هذا هو جدول التجزئة الخاص بنا الآن ، ولكن كيف يمكننا إحضار الإدخالات؟
‫فكيف يمكننا استرداد الإدخالات من جدول التجزئة الخاص بنا؟
‫حسنًا ، لنلقِ نظرة على طرق مختلفة لذلك.
‫لذا فإن أول شيء يمكننا القيام به هو أنه يمكننا فقط إنشاء كائن طالب هنا.
‫لذلك سيتم استدعاء الطالب وهذا الكائن الطالب المخزن.
‫لذلك سأحصل على قيمة الطالب من طاولتي.
‫إذن في هذه الحالة ، إنها طاولة الطلاب.
‫جدول الطلاب مثل ذلك.
‫وهنا مشابه لكيفية الوصول إليه في مصفوفة.
‫كيف تعتبر X قيمة في مصفوفة ، يمكنني الوصول إليها عن طريق معرف.
‫لذلك هنا على سبيل المثال ، دعنا نقول أنني أريد الحصول على واحد في ID واحد مثل ذلك.
‫لذا فإن المشكلة هنا هي أن جدول التجزئة هذا يمكن أن يحتوي على قيم من نوع كائن ، صحيح ، كما رأينا
‫سابقًا.
‫لذلك هنا ، إذا تقدمنا واستدعينا طريقة الإضافة ، يمكنك أن ترى أنه يمكننا تعيين مفتاح ، ولكن بعد ذلك ستكون
‫القيمة من نوع الكائن.
‫وهذا يعني أن هذا سيكون من نوع الكائن.
‫لكن لا يمكننا تخصيص نوع كائن فقط للطالب.
‫يجب أن يكون خارج النوع الطالب لأن هذا الطالب المخزن هو في الواقع طالب من النوع.
‫لذلك نحن بحاجة للتأكد من أننا نلقيها على طالب هنا وبعد ذلك سيعمل هذا.
‫حسنًا ، نحن نلقي هذا الكائن على الطالب لأننا نعرف ذلك داخل طاولة الطالب في الموضع
‫الأول.
‫لذا في المعرف الأول ، ستكون القيمة في الواقع من نوع الطالب.
‫هنا يمكنك الحصول على الطالب في ID رقم واحد ، يمكنك الحصول على الطالب في ID رقم 2 وما إلى ذلك.
‫لكن هذا لا ينجح إلا لأننا نعلم أننا في الواقع نستخدم هذه الأرقام.
‫لذلك إذا كنت ترغب في الحصول عليه ، وإلا يمكنك استخدام الرقم الثالث بواسطة المعرف.
‫لذلك سوف يمنحك هذا الآن القيمة الكامنة وراء بطاقة هوية الطالب الواحدة.
‫لذلك سيعطيك هذا بشكل أساسي هذه القيمة هنا أو هذا الطالب هنا.
‫وهذا هو ، على وجه الدقة.
‫إذن هذا هنا ، لأن هذا ما نقوم بتخزينه في هذا المعرف.
‫الآن يمكننا المضي قدمًا والقيام بشيء مثل هذا حيث نكتب الآن بدلاً من عالم الترحيب المقلي شيئًا
‫مفيدًا حيث نكتب معرف الطالب واسم الطالب بالإضافة إلى المعدل التراكمي الخاص
‫به.
‫لذلك سنستخدم معرف نقطة واحدة للطالب مخزن.
‫لذلك حصلنا على هويته ، وحصلنا على اسمه وحصلنا على معدله التراكمي.
‫وفي هذه الحالة ، يكون معدلها التراكمي وما إلى ذلك ، لأنها ماريا في المركز الأول في ID رقم واحد.
‫حسنًا ، لنقم بتشغيل هذا ويمكنك أن ترى معرف الطالب هو اسم واحد هو ماريا والمعدل التراكمي هو 98.
‫لذلك رأينا هنا كيف يمكننا إنشاء جدول تجزئة.
‫هذه هي الطريقة التي يمكننا بها تخزين البيانات في جدول التجزئة.
‫في الواقع ، هذا هو المكان الذي نخزن فيه البيانات في جدول تجزئة.
‫ثم هذه هي الطريقة التي يمكننا بها استرداد البيانات من جدول التجزئة.
‫لنفترض الآن أننا نريد بالفعل طباعة جميع البيانات داخل جدول التجزئة الخاص بنا وليس
‫لدينا مفتاح معين تحت تصرفنا.
‫يمكننا القيام بذلك ببساطة عن طريق الحصول على جميع المفاتيح من جدول التجزئة الخاص بنا لحل هذه المشكلة.
‫أولاً ، علينا مناقشة بنية تسمى إدخال القاموس.
‫كلما أضفنا إدخالًا جديدًا إلى جدول التجزئة الخاص بنا.
‫إذاً زوج القيمة الرئيسية الخاص بنا ، سيتم إنشاء كائن إدخال قاموس جديد لنا وسيتم إدراجه في جدول
‫التجزئة الخاص بنا ، مما يعني أن جدول التجزئة هو في الأساس مجموعة من إدخالات القاموس.
‫لذلك باستخدام كائن مؤقت لإدخال القاموس ، يمكننا تصفح جدول التجزئة الخاص بنا باستخدام لكل حلقة.
‫لننظر إلى هذا في هذا المثال بالذات هنا حيث سأقوم باستخدام a لكل حلقة
‫هنا.
‫وسيكون هذا لكل نوع حلقة هو إدخال القاموس.
‫هذا هو الهيكل الذي كنت أتحدث عنه.
‫يمكنك ان ترى هنا دخول القاموس المنظم.
‫إذن ما هو اسم العنصر الذي سأستخدمه؟
‫سأستخدم الدخول.
‫بالطبع ، يمكنك استدعاء هذا الطالب أو أي شيء آخر لأنك تعلم أن الإدخالات ستكون
‫من نوع الطالب ، ولكن دعنا نقول أنك لا تعرف ذلك ويمكنك أيضًا تسميته إدخال.
‫ثم ما هي المجموعة التي نريد تشغيل هذا خلالها أو التي نريد الحصول على القيم منها ،
‫وسيكون هذا جدول طلابنا.
‫لذلك هذا واحد يسترجع.
‫عنصر فردي بمعرف معروف.
‫و هنا.
‫استرجع كل القيم من جدول التجزئة.
‫تمام.
‫لذا فإن الإدخال داخل جدول التجزئة الخاص بنا يكون من نوع إدخال القاموس ، كما قلت للتو.
‫هذا يسمح لنا الآن بالمرور من خلال هذا.
‫الجدول ، وجدول الطلاب وعرض القيم بشكل أساسي.
‫لذلك هنا ، نظرًا لأن قيمة الإدخال ستعيد كائنًا ، يمكنك أن ترى هنا أنه يقول كائن.
‫لكن ما نريده للحصول على تفاصيل الطالب سيكون كائنًا طالبًا.
‫ما يتعين علينا القيام به هو أننا سنحتاج إلى القيام بما يلي.
‫لذلك نقوم بإنشاء قيمة مؤقتة ، والتي ستكون قيمة دخولنا.
‫الآن لدينا نفس المشكلة التي واجهتنا هنا حيث نحتاج إلى إلقاء هذا على الطالب لأنه مجرد كائن ، أليس
‫كذلك؟
‫لكننا نريدها أن تكون من نوع الطلاب حتى نتمكن من الوصول إلى خصائص الطلاب.
‫لذلك لأنه بخلاف ذلك ، لا تحتوي على معرّف هنا ، ولا يمكنني الوصول إلى معرّفها ، ولا يمكنني الوصول إلى اسمها
‫، وكل هذه الأشياء على الرغم من وجودها هناك.
‫لكن معرفنا لا يسمح بذلك لأننا نحتاج أولاً إلى التأكد من أننا نقوم بتحويل القيمة أو تحويلها إلى النوع
‫الصحيح ، والذي سيكون طالبنا من النوع.
‫لذلك نحن الآن نلقيها ، ونخزنها مؤقتًا ، والآن يمكننا المضي قدمًا وكتابة القيم الفردية إلى وحدة
‫التحكم الخاصة بنا ، على سبيل المثال ، أو استخدام برنامجنا كما نريد.
‫لذلك يمكننا هنا استخدام معرف الطالب باستخدام معرف القالب لأن temp الآن من نوع الطالب
‫والطالب لديه اسم معرف GPA ويمكننا الوصول إلى كل هؤلاء لتكرار القائمة الكاملة لجميع طلابنا الآن.
‫لذلك دعونا نفعل ذلك بسرعة حقيقية.
‫دعنا نشغل الكود الخاص بنا ونرى ما يفعله هذا لكل حلقة لنا حتى تتمكن من رؤيته يمر من خلاله.
‫انها تقول.
‫الطالب أربعة ستيف.
‫الطالب الثلاثة الصلبة.
‫الطالب الثاني هو جايسون وواحد ماريا.
‫لذلك ترى أنه ينتقل من الخلف إلى الآخر ، ويبدأ عند الإدخال الأخير ويصعد إلى الإدخال الأول.
‫الآن ، هذا إذا كنا في هذه المرحلة لا نعرف ما إذا كان طالبًا ، على الرغم من أننا نقوم بتحويله إلى
‫طالب بالفعل.
‫هذا فقط لتوضيح أن جدول التجزئة هو في الحقيقة مجرد مجموعة من إدخالات القاموس.
‫لنلق نظرة على كيفية تبسيط ذلك لكل حلقة.
‫يمكننا تبسيطها بالقول لكل نوع متغير سيكون طالبًا فيه.
‫اسم العنصر ، حسنًا ، يمكنك تسميته طالبًا.
‫سأسميها قيمة مثل.
‫لذلك هذا جيد.
‫وستكون المجموعة التي أرغب في استعراضها عبارة عن جدول بينما يقوم الطلاب بنقاط القيم.
‫إذن هناك مجموعة AI هذه لقيم جدول التجزئة.
‫لذلك تحصل على مجموعة AI تحتوي على القيم الموجودة في جدول التجزئة.
‫إذن ، هذا يسمح لنا بتصفح القيم مباشرة دون الحاجة إلى ذلك.
‫في الأساس ، نفعل ما فعلناه هنا ، حيث قمنا بتحويله أو حيث قمنا بإلقائه في كائن طالب.
‫حتى الآن يمكننا المضي قدمًا و.
‫افعل نفس الشيء كما فعلنا هنا.
‫لكن الآن ، بالطبع ، سيكون معرف القيمة وما إلى ذلك لأنه ليس إدخالًا وليس مؤقتًا ، لكنه
‫سيكون في الواقع ذو قيمة لأن هذا هو ما يحدث لكل مجموعة.
‫يعطينا كل تكرار له ، حيث يمر بكل القيم التي لدينا.
‫وستكون القيمة هي القيمة الفردية التي نبحث عنها حاليًا لهذا التكرار المحدد.
‫لذلك في التكرار الأول ، سيكون.
‫ستيف.
‫ثم ستكون كلارا ، ثم جايسون ، ثم ماريا.
‫لذا إذا تخلصنا من هذا السطر هنا أو كان لكل حلقة وقمنا بتشغيله مرة أخرى ، فسنرى أننا نحصل
‫على نفس النتائج.
‫إذن ستيف وكلارا وجيسون وماريا.
‫تمام.
‫كانت هذه مقدمة سريعة في جداول التجزئة والفيديو التالي ، سأواجه تحديًا صغيرًا
‫بالنسبة لك حيث ستقوم بتوسيع الكود الخاص بك قليلاً لفهم جداول التجزئة بشكل أفضل قليلاً.
‫وبعد ذلك سنلقي نظرة على القواميس.