دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۲۵
  • مرداد

جلسه ۳۹ : آشنایی با Generic List در #C

  • دسته‌بندی‌ها :
جلسه ۳۹ : آشنایی با Generic List در #C
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه :

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، با دوره کامل آموزش #C در خدمت شما دوستان هستیم . در بخش قبلی با مجموعه های Generic در زبان #C آشنا شدید. در این بخش قصد داریم شما را با مجموعه Generic List در #C و نحوه دسترسی به عناصر List در سی شارپ  آشنا کنیم.

      قبلا در مورد ArrayList در بخشهای قبلی صحبت کردیم. هنگامی که یک عنصر به ArrayList اضافه می شود، اندازه آن نیز به صورت خودکار تغییر می کند. List مجموعه ای مشابه یک ArrayList است به جز اینکه List یک مجموعه عمومی است در حالی که ArrayList یک مجموعه غیر عمومی است.

       

      پیاده سازی :

      List را می توان با دو روش زیر تنظیم کرد.

      مثال : 

       

      در مثال بالا، مجموعه ی List، در خط اول با استفاده از نوع List ، و خط دوم با استفاده از نوع IList تعریف و مقداردهی اولیه شده است.

      List یک پیاده سازی خاص از IList است. در برنامه نویسی شی گرا، بهتر است از رابط، استفاده شود نه از کلاس . بنابراین در تعریف List بهتر است از IList استفاده گردد.

      مجموعه عمومی List شامل متدهای کمکی بیشتری نسبت به رابط IList است. جدول زیر لیست پراپرتی ها و متد های مهم مجموعه عمومی List را نشان می دهد :

      پراپرتی ها :

      توضیحاتپراپرتی
      عنصری را در ایندکس مشخص وارد می کند و یا آن را برمی گرداند.Items
      تعداد کل عناصر موجود در مجموعه عمومی List را بازمیگرداند.Count

       

      متد ها :

      توضیحاتمتد
      یک عنصر در انتهای مجموعه عمومی List اضافه می کند.Add
      عناصر مجموعه مشخص شده را در انتهای مجموعه عمومی List اضافه می کند.AddRange
      عنصری را در مجموعه عمومی List جستجو و آن را باز می گرداند.BinarySearch
      تمام عناصر را از List حذف می کند.Clear
      بررسی اینکه آیا عنصر مشخص شده در List وجود دارد یا خیر.Contains
      اولین عنصر را بر اساس تابع پیش فرض مشخص می کند.Find
      تکرار از طریق یک مجموعه ListForeach
      یک عنصر را در اندیس مشخص شده در List وارد می کند.Insert
      عناصر مجموعه دیگری را در اندیس مشخص شده قرار می دهد.InsertRange
      عنصر مشخص شده را حذف می کند.Remove
      عنصر را از اندیس مشخص شده حذف می کند.RemoveAt
      همه عناصر را از اندیس مشخص شده تا اندازه آن از مجموعه List حذف می کند.RemoveRange
      تمام عناصر را مرتب می کند.Sort
      ظرفیت را به اندازه تعداد واقعی عناصر تنظیم میکند.TrimExcess
      تعیین می کند که آیا هر عنصر در List مطابق با شرایط تعریف شده توسط پیش فرض ، مشخص شده است.TrueForAll

       

      متد Add :

      از این متد برای اضافه کردن عنصر به مجموعه List استفاده مس شود . مثال زیر مقدار نوع int را به یک مجموعه List از نوع int اضافه می کند.

      ساختار کلی :

      void Add(T item)

      مثال : 

      شما همچنین می توانید عناصر را در هنگام تعریف ، مقداردهی اولیه کنید:

      مثال : 

       

      متد AddRange :

      متد AddRange تمام عناصر را از مجموعه دیگری اضافه می کند.

      ساختار کلی :

      void AddRange(IEnumerable<T> collection)

      مثال : 

       

      توجه: متد AddRange تنها با متغیر نوع List مقداردهی اولیه می شود و IList شامل متد AddRange نیست.

       

      دسترسی به عناصر List :

      میتوان با استفاده متد ForEach موجود در List به عناصر مجموعه List دسترسی پیدا کرد.

      مثال : 

      IList شامل متد foreach نمی باشد ، برای دسترسی به عناصر مجموعه ای که از IList در تعریف و مقداردهی اولیه آن استفاده شده است می توانید از حلقه foreach یا for همانند مثال زیر استفاده کنید :

      مثال : 

      مثال : 

      خروجی :

      مثال : 

      همچنین میتوانید با استفاده از شماره ایندکس عنصری خاص به آن دسترسی داشته باشید.

      مثال : 

      همچنین از پراپرتی Count برای دسترسی به تعداد عناصر موجود در لیست استفاده می کنیم.

      مثال : 

      خروجی :

      مثال : 

      مجموعه List با استفاده از IList تعریف شده است پس مجموعه List میتواند شامل همه انواع IList باشد.

      مثال : 

      خروجی :

      مثال : 

       

      متد Insert :

      متد Insert یک عنصر را در مجموعه List در اندیس مشخص شده وارد می کند.

      ساختار کلی :

      void Insert(int index, T item);

      مثال : 

      خروجی :

      مثال : 

       

      متد Remove  و  RemoveAt :

      متدهای Remove و RemoveAt موارد را از مجموعه List حذف می کنند.

      مثال : 

      خروجی :

      مثال : 

       

      متد TrueForAll :

      TrueForAll یک متد از کلاس List است. اگر شرط مشخص شده به درستی بیان می شود، true ، در غیر این صورت false را برمی گرداند . در اینجا، شرایط را می توان به عنوان نوع پیش فرض delegate یا عبارت lambda مشخص کرد.

      ساختار کلی :

      bool TrueForAll(Predicate<T> match)

      مثال : 

      مثال زیر با استفاده از متد isPositiveInt برای استفاده از TrueForAll بیان شده است.

      مثال : 

       

      چند نکته جهت بخاطر سپردن :

      1. مجموعه List عناصر نوع مشخص شده را ذخیره می کند و اندازه آن به طور خودکار تغییر می کند.
      2. مجموعه List می تواند چند عنصر null و تکراری را ذخیره کند.
      3. مجموعه List را می توان به نوع IList یا List اختصاص داد. اگر از نوع List استفاده شود شامل متدهای کمکی بیشتری نسبت به IList خواهد بود.
      4. در مجموعه List می توان با استفاده از indexer، توسط متد foreach به عناصر آن دسترسی پیدا کرد.
      5. در LINQ می توان برای پرس و جو های خود از مجموعه List استفاده کرد.
      6. مجموعه List ایده آل برای ذخیره و بازیابی تعداد زیادی از عناصر است.

       

      در این قسمت با مجموعه عمومی List در #C آشنا شدید ، در قسمت بعدی قصد داریم شما را با مجموعه ی عمومی دیگر در #C به نام SortedList آشنا کنیم.

      QR:  جلسه ۳۹ : آشنایی با Generic List در #C
      به اشتراک بگذارید


      دیدگاه کاربران
      1. تصویر کاربر