كيفية العمل مع مجموعة HashTable في "Visual C" #

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية309357
للحصول على إصدار Microsoft Visual Basic .NET من هذه المقالة، راجع 307933.
الموجز
تعرض هذه المقالة خطوة بخطوة كيفية استخدام مجموعة HashTable. لأن التجزئة يلغي الحاجة للبحث المكلفة البيانات لاسترداد البيانات, يمكنك استخدام التجزئة لاسترداد البيانات بشكل فعال. تجزئة يستخدم قيمة المفتاح نفسه لتحديد موقع البيانات.

توفر "مكتبات فئة معارف" فئة HashTable تم تعريف في مساحة الاسم System.Collections بحيث لم تكن المطلوبة رمز الجداول التجزئة.

الخطوات التالية لإنشاء النموذج

مجموعة HashTable بتخزين زوج (مفتاح ، القيمة) ويستخدم مفتاح التجزئة والحصول على موقع التخزين. مفتاح immutable وهو لا يمكن وجود إدخالات مكررة في HashTable. يستخدم هذا النموذج عدة مثيلات الفئة الشخص بسيطة لتخزين في HashTable. يتم استخدام اسم العائلة على أنه مفتاح.
  1. افتح Microsoft Visual Studio ثم إنشاء مشروع تطبيق نماذج Windows في "Visual C" #. يتم إضافة Form1 إلى المشروع بشكل افتراضي.
  2. في "مستكشف الحلول" انقر بزر الماوس الأيمن فوق اسم المشروع ، أشر إلى إضافة ، ثم انقر فوق فئة لإضافة فئة وحدة نمطية. يتم إضافة Class1 إلى المشروع بشكل افتراضي.
  3. استبدل أية تعليمات برمجية في الوحدة النمطية Class1 التعليمة البرمجية التالية:
     public class Person{	public string Fname, Lname;	public Person(string FirstName, string LastName)	{		Fname = FirstName;		Lname = LastName;	}	public override string ToString()	{		return Fname + " " + Lname;	}}						
    تحتوي فئة الأشخاص مُنشئ واحد التي تأخذ المعلمات الاسم الأول "و" اسم العائلة ويقوم بتعيين هذه المعلمات إلى المتغيرات المحلية. يتجاوز الدالة ToStringToString من فئة كائن لإرجاع FnameLname متصلاً معاً.
  4. قم بإنشاء يقوم كائن Hashtable مستوى النموذج ثم التصريح ثلاثة المتغيرات من النوع الشخص. قم بإضافة التعليمات البرمجية التالية إلى فئة Form1:
    <?xm-deletion_mark author="v-bobbid" time="20080711T172143-0800" data="private Hashtable MyTable = new Hashtable();		//For simplicity, create three Person objects to add to the HashTable collection.Person Person1,Person2,Person3; "?><?xm-insertion_mark_start author="v-bobbid" time="20080711T172143-0800"?>System.Collections.Hashtable MyTable = new System.Collections.Hashtable();//For simplicity, create three Person objects to add to the HashTable collection.Person Person1,Person2,Person3; <?xm-insertion_mark_end?>					
  5. في الخطوات التالية استخدام الأسلوب Addيقوم كائن Hashtable إضافة ثلاثة كائنات الشخص إلى Hashtable في كتلة المحاولة catch. كتلة المحاولة catch catches الاستثناء ويعرض رسالة في حالة وجود مفاتيح مكررة:
    1. وضع عنصر تحكم زر على Form1 وتغيير الخاصية Text إلى إضافة عناصر.
    2. انقر نقراً مزدوجاً فوق الزر فتح إطار التعليمات البرمجية الخاصة به ثم قم بلصق التعليمة البرمجية التالية في الحدث Button1_Click:
      Person1 = new Person("David", "Burris");Person2 = new Person("Johnny", "Carrol");Person3 = new Person("Ji", "Jihuang");//The Add method takes Key as the first parameter and Value as the second parameter.try{        MyTable.Add(Person1.Lname, Person1);	MyTable.Add(Person2.Lname, Person2);	MyTable.Add(Person3.Lname, Person3);				}catch (ArgumentException ae){	MessageBox.Show("Duplicate Key");	MessageBox.Show(ae.Message);}						
  6. يقوم كائن Hashtable يوفر مفهرس. في الخطوات التالية، فهرس مفتاح الوصول القيمة المخزنة في الموقع المجزأة:
    1. إضافة عنصر تحكم زر إلى Form1 وتغيير الخاصية اسم إلى إحضار العناصر.
    2. انقر نقراً مزدوجاً فوق الزر ثم قم بلصق التعليمة البرمجية التالية في الحدث Button2_Click:
      //Use the indexer of the Hashtable class to retrieve your objects. The indexer takes //Key as a parameter and accesses it with the Hashed location.try{        MessageBox.Show(MyTable[Person1.Lname].ToString());	MessageBox.Show(MyTable[Person2.Lname].ToString());	MessageBox.Show(MyTable[Person3.Lname].ToString());}catch (NullReferenceException ex){	MessageBox.Show("Key not in Hashtable");	MessageBox.Show(ex.Message);} 						
  7. في الخطوات التالية، استخدم الطريقة إزالة لإزالة عنصر واحد من مجموعة HashTable:
    1. إضافة عنصر تحكم زر إلى Form1 وتغيير الخاصية Text إلى إزالة العنصر.
    2. انقر نقراً مزدوجاً فوق الزر ثم قم بلصق التعليمة البرمجية التالية في الحدث Button3_Click:
      <?xm-deletion_mark author="v-bobbid" time="20080711T173011-0800" data="if (MyTable.Count == 0) {	MessageBox.Show(&quot;There are no items in HashTable&quot;);}else{        MessageBox.Show(&quot;The count before removing an Item is&quot; + &quot; &quot; + MyTable.Count);        MessageBox.Show(&quot;Removing value stored at key value (Burris)&quot;);        Remove the object that is stored at the Key value Person1.Lname.        MyTable.Remove(Person1.Lname);}"?><?xm-insertion_mark_start author="v-bobbid" time="20080711T173011-0800"?>if (MyTable.Count == 0) {    MessageBox.Show("There are no items in HashTable");}else{        MessageBox.Show("The count before removing an Item is" + " " + MyTable.Count);        MessageBox.Show("Removing value stored at key value (Burris)");        // Remove the object that is stored at the Key value Person1.Lname.        MyTable.Remove(Person1.Lname);} <?xm-insertion_mark_end?>						
  8. في الخطوات التالية تعداد العناصر التي يتم تخزينها في مجموعة HashTable:
    1. إضافة عنصر تحكم زر إلى Form1 وتغيير الخاصية Text إلى التعداد.
    2. انقر نقراً مزدوجاً فوق الزر ثم قم بلصق التعليمة البرمجية التالية في الحدث Button4_Click:
      <?xm-deletion_mark author="v-bobbid" time="20080711T174252-0800" data="IDictionaryEnumerator Enumerator;if (MyTable.Count == 0)	MessageBox.Show(&quot;The hashtable is empty&quot;);else{	MessageBox.Show(&quot;Enumerating through the Hashtable collection&quot;);	Enumerator = MyTable.GetEnumerator();                while (Enumerator.MoveNext())	{	        MessageBox.Show(Enumerator.Value.ToString());	}}ICollection MyKeys;     if (MyTable.Count == 0)        MessageBox.Show(&quot;The hashtable is empty&quot;);else{       MessageBox.Show(&quot;Accessing keys property to return keys collection&quot;);       MyKeys = MyTable.Keys;       foreach (object Key in MyKeys)       {		MessageBox.Show(Key.ToString());       }								   } 							"?><?xm-insertion_mark_start author="v-bobbid" time="20080711T174252-0800"?>System.Collections.IDictionaryEnumerator Enumerator;if (MyTable.Count == 0)    MessageBox.Show("The hashtable is empty");else{    MessageBox.Show("Enumerating through the Hashtable collection");    Enumerator = MyTable.GetEnumerator();    while (Enumerator.MoveNext())    {        MessageBox.Show(Enumerator.Value.ToString());    }}System.Collections.ICollection MyKeys;if (MyTable.Count == 0)    MessageBox.Show("The hashtable is empty");else{    MessageBox.Show("Accessing keys property to return keys collection");    MyKeys = MyTable.Keys;    foreach (object Key in MyKeys)    {        MessageBox.Show(Key.ToString());    }}  <?xm-insertion_mark_end?>
      التعليمات البرمجية هذا التصريح عن متغيّر نوع IDictionaryEnumerator ومن باستدعاء الأسلوب GetEnumerator للمجموعة HashTable. مع عداد إرجاع ، التعليمة البرمجية تعداد خلال العناصر الموجودة في المجموعة ويستخدم أسلوب مفاتيحHashTable تعداد خلال المفاتيح.
  9. في الخطوات التالية، استخدم الطريقة مسح لمسح HashTable:
    1. إضافة عنصر تحكم زر إلى Form1 وتغيير الخاصية Text إلى مسح.
    2. انقر نقراً مزدوجاً فوق الزر ثم قم بلصق التعليمة البرمجية التالية في الحدث Button5_Click:
      MyTable.Clear();      MessageBox.Show("HashTable is now empty");						
  10. اتبع الخطوات التالية لإنشاء التطبيق وتشغيله:
    1. انقر فوق إضافة العناصر. لاحظ أن تتم إضافة ثلاثة كائنات الشخص إلى المجموعة HashTable.
    2. انقر فوق الحصول على العناصر. لاحظ أن المفهرس يحصل على العناصر الموجودة في مجموعة HashTable. إضافة الثلاثة حديثاً يتم عرض العناصر.
    3. انقر فوق إزالة العنصر. لاحظ أنه يتم حذف العنصر في الموقع "Burris" المفتاح.
    4. انقر فوق تعداد. لاحظ أن تعداد IDictionaryEnumerator خلال العناصر الموجودة في مجموعة HashTable خاصية المفاتيح HashTable إرجاع "مجموعة المفاتيح".
    5. انقر فوق مسح. لاحظ أن يتم مسح كافة العناصر من مجموعة HashTable.
ملاحظة الشركات ، المؤسسات ، منتجات ، أسماء المجال, عناوين البريد الإلكتروني ، الشعارات ، الأشخاص, ، والأحداث المشار إليها هنا بمثابة وهمية. لا تقترن أي شركة ، المؤسسة ، المنتج, اسم المجال ، عنوان البريد الإلكتروني ، شعار ، الشخص أو أماكن أو أحداث أو ولا يجب التلميح إلى اقتران من هذا النوع.

تحذير: تمت ترجمة هذه المقالة تلقائيًا

Egenskaber

Artikel-id: 309357 – Seneste udgave 07/15/2008 16:45:58 – Udgave 4.0

Microsoft Visual C# 2008 Express Edition, Microsoft Visual C# 2005, Microsoft Visual C++ .NET 2003 Standard Edition, Microsoft Visual C# .NET 2002 Standard Edition

  • kbmt kbhowtomaster KB309357 KbMtar
Feedback