تبلیغات
banner
banner
banner
تبلیغات
banner

فیلم های آموزشی : 36 +

تعداد کاربران : 44 +

تعداد کل مطالب : 338 +

تعداد نظرات : 33 +

حضرت محمد (ص) : ز گهواره تا گور دانش بجوی .

آموزش مقدماتی تا پیشرفته سی شارپ بخش پنجاه و ششم


بنام اول برنامه نویس هستی (الله)

آموزش مقدماتی تا پیشرفته سی شارپ بخش پنجاه و ششم

سلام به همه کاربران وبسایت بزرگ لندلرن

قسمت پنجاه و ششم


نمايش عناصر موجود در ليست پيوندی:

براي كامل شدن برنامه، بايد يك سری از قابليت ها را به آن اضافه كنيد تا رابط كاربري برنامه بهبود پيدا كند.

در بخش امتحان كنيد بعدی، كد درون رويداد SelectedIndexChanged مربوط به ListBox را به گونه اي تغيير خواهيد داد تا هـربار كه مشترك جديدي را از ListBox انتخاب كنيد، اطلاعات او بر روي صفحه نمايش داده شود.

امتحان كنيد: نمايش اطلاعات مشترك انتخاب شده در صفحه

  • در بخــش طراحــي فــرم بــر رو ي ليــست بــاكس دو بــار كليــك كنيــد . بــه ايــن ترتيــب متــد مربــوط بــه رويــداد
    SelectedIndexChanged به طور اتوماتيك ايجاد مي شود . كد مشخص شـده در زيـر را بـه ايـن متـد
    اضافه كنيد.
  • برنامه را اجرا كنيد و بر روي دكمه ي فرمان Test كليك كنيد تا آيتم هاي مورد نياز در ListBox قـرار گيرنـد . حال اگر بر روي نام يكي از مشتركين در ليست باكس كليك كنيد، همانند شكل زیر اطلاعـات او در كادرهـاي متنـي روي فرم نمايش داده مي شوند

چگونه كار مي كند؟

ArrayList يكي از انواع كلكسيون هاي موجود در NET .است كه از آن استفاده زيادي شده است.

يك كلكـسيون راهـي است براي ساختن راحت گروه هايي از عناصر مرتبط به هم. اگر به برنامه ي Demo Structure نگـاهي بيندازيـد و كـد تابع CreateCustomer را مشاهده كنيد، متوجه مي شويد كه براي اضافه كردن يك مشترك به ليـست، هماننـد اضـافه كردن يك مشترك به لیست پيوندي، از تابع Add استفاده مي كردید.

براي حذف يك مشترك هم (چه در ليست باكس و چه در ليست پيوندي) از متد Remove استفاده میکردید:

 

پيشنهاد مي شود كه هنگام برنامه نويسي اگر مي خواهيد ليستي از عناصر مرتبط به هم را نگهداري كنيد، از كلكـسيون هـا اسـتفاده كنيد.

در زبانهاي برنامه نويسي تحت

.net

وهمچنين در كلاسهاي موجود در كتابخانه كلاس

.net

مايكروسافت سعي كرده است تمام كلكسيون ها صرفنظر از نوع مقداري كه بايد ذخيره كنند، به يك روش كار كنند.

به همين دليل است كه در برنامه هر جـا كه بخواهيد عنصري را حذف كنيد از متد

استفاده کنیدRemove

و اگر بخواهید عنصری را اضافه کنید از add  استفاده کنید.

ايجاد جداول قابل جستجو با Hashtable: ها

تاكنون اگر مي خواستيد عنصري را در يك آرايه يا يك ليست پيوندي پيدا كنيد، بايد انديس عدد صحيح آن عنصر را كه معرف مكان قرار گرفتن آن عنصر بود مشخص مي كرديد.

اما اگر مي خواستيد براي دسترسي به آن عنصر از مقدار ديگري به جز انديس اسـتفاده كنيد، نمي توانستيد اين روش را به كار ببريد .

براي مثال فرض كنيد در برنامه قبل مي خواسـتيد اطلاعـات مـشتركين را بـر اسـاس آدرس پست الكترونيكي آنها بدست آوريد .

در اين قسمت نوع خاصي از كلكسيون ها به نام Hashtable را بررسي خواهيم كرد كه روشهاي بهتري را براي جستجو ارائه مي دهند. اين كلكسيون ها بر اساس يك مقدار كليدي كه براي آنها مشخص مي شود، آرايه را جستجو مي كنند .

استفاده از Hashtable

Hashtable  نوعي كلكسيون است كه هر عنصر آن داراي يك كليد است.

با استفاده از اين كليد مي توانيد به مقدار عنصر در كلكسيون دسترسي پيدا كنيد.

براي مثال فرض كنيد اطلاعات مشتركي با نام Darrel را كه از نـوع Customer اسـت در يك Hashtable قرار مي دهيد و مقدار كليدي اين عنصر را نيز برابر با آدرس پست الكترونيكي او مشخص مي كنيد.

در اين صورت اگر براي دسترسي به اطلاعات اين مشترك آدرس پست الكترونيكي او را وارد كنيد مي توانيد به سرعت او را در ليـست پيـدا كنيد.

  1. هنگــامي كــه دو عنــصر كليــد و مقــدار را بــه Hashtable اضــافه مــي كنيــد، عنــصر كليــد تــابعي بــه نــام Object.GetHashCode(); را فراخواني مي كند .
  2. اين تابع يك عدد صحيح منحصر به فـرد را بـراي كليد برمي گرداند كه به عنوان شناسه ي آن استفاده مي شود. اين عدد به صورتي است كه اگر چند بار ديگر هم تابع براي اين عنصر فراخواني شود عدد يكساني برمي گردد.
  3. به اين ترتيب هنگامي كه بخواهيد به عنـصري در يـك Hashtable دسترسـي پيـدا كنيد، كليد آن عنصر از شما گرفته شده و تابع GetHashCode مربوط به آن كليد اجرا مي شود.
  4. شناسه اي كه بـه وسـيله ي اين تابع به دست مي آيد با تمام شناسه هاي موجود در Hashtable مقايسه مي شود. اگر آن شناسه در ليـست وجـود داشـته باشد، مقدار مرتبط به آن كليد برمي گردد .

 

به پایان بخش پنجاه و ششم رسیدیم.

به قسمت بعدی بروید            http://www.landlearn.ir/c-sharp-part-57


درباره نویسنده
سجاد اسدی
   سجاد اسدی

سجاد اسدی هستم دانشجوی رشته نرم افزار و علاقه مند به تدریس و یادگیری دروس مرتبط با تکنولوژی نرم افزار و اینترنت اشیاء جهت ارتباط با بنده مراجعه شود به آیدی سروش و تلگرام : @ordervira و پیج بنده در اینستاگرام instagram.com/sajjadred11 ""اللهم صل علی محمد و آل محمد"" برای شروع هیچ وقت دیر نیست. "الهم عجل لولیک الفرج"

دیدگاه بگذارید

avatar
  اشتراک  
اطلاع رسانی

aparat کانال آپارات

soroush کانال سروش

کانال آی گپ