List در سی شارپ
<List<T مجموعه ای از اشیاء است که می توان از طریق ایندکس و متدهایی برای مرتب سازی، جستجو و اصلاح list به آن دسترسی پیدا کرد. <List<T این نسخه عمومی (generic) از ArrayList است که در فضای نام System.Collections.Generic قرار می گیرد.
خصوصیات و ویژگی های <List<T :
1- <List<T معادل ArrayList است که <IList<T را پیاده سازی می کند.
2- <List<T در فضای نام System.Collections.Generic قرار می گیرد.
3- <List<T می تواند حاوی عناصری از نوع مشخص باشد. <List<T چک کردن نوع زمان کامپایل را فراهم می کند و boxing-unboxing را انجام نمی دهد زیرا generic است.
4- عناصر را می توان با استفاده از متدهای ()Add()، AddRange یا سینتکس collection-initializer اضافه کرد.
5- به عناصر می توان با استفاده از یک نمایه به عنوان مثال myList[0] دسترسی داشت. ایندکس ها از صفر شروع می شوند.
6- <List<T سریعتر است و کمتر از ArrayList خطا دارد.
ایجاد یک List در سی شارپ
<List<T یک مجموعه generic است، بنابراین باید یک نوع پارامتر برای نوع داده ای که می تواند ذخیره کند مشخص کنید. مثال زیر نحوه ایجاد لیست و افزودن عناصر را نشان می دهد.
خروجی قطعه کد بالا به صورت زیر می باشد.
در مثال بالا، ()<List<int> primeNumbers = new List<int لیستی از نوع int ایجاد می کند. به همین ترتیب، cities و bigCities لیست از نوع رشته ای هستند. سپس می توانید عناصر را با استفاده از متد ()Add یا دستور collection-initializer به لیست اضافه کنید.
همچنین می توانید عناصر کلاس های custom را با استفاده از سینتکس collection-initializer اضافه کنید. آنچه که در ادامه می بینید اشیاء کلاس Student را به <List<Student اضافه می کند.
اضافه کردن آرایه در List
از متد ()AddRange برای اضافه کردن تمام عناصر یک آرایه یا هر مجموعه دیگری به List استفاده کنید.
امضای ()AddRange عبارت است از : void AddRange(IEnumerable<T> collection)
خروجی قطعه کد بالا به صورت زیر می باشد.
دسترسی به عناصر List در سی شارپ
به یک لیست می توان از طریق index ، حلقه for/foreach و با استفاده از پرس و جوهای LINQ دسترسی یافت. index های یک لیست از صفر شروع می شوند. برای دسترسی به آیتم های خاص لیست، یک ایندکس را در براکت قرار دهید، مانند همان کاری که در آرایه انجام می دهید. از حلقه foreach یا for برای تکرار مجموعه <List<T استفاده کنید.
خروجی قطعه کد بالا به صورت زیر می باشد.
دسترسی به List با استفاده از LINQ
<List<T یک interface با نام IEnumerable را پیاده سازی می کند. بنابراین، می توانیم لیستی را با استفاده از سینتکس کویری LINQ یا سینتکس متد جستجو کنیم، همانطور که در زیر نشان داده شده است.
خروجی قطعه کد بالا به صورت زیر می باشد.
درج عناصر در List
با استفاده از متد ()Insert می توانید یک عنصر را در مجموعه <List<T در ایندکس مشخص شده درج کنید.
امضای ()Insert عبارت است: void Insert(int index, T item)
خروجی قطعه کد بالا به صورت زیر می باشد.
< br />حذف عناصر از List
از متد ()Remove برای حذف اولین رخداد عنصر مشخص شده در مجموعه <List<T استفاده کنید. از متد ()RemoveAt برای حذف یک عنصر از ایندکس مشخص شده استفاده کنید. اگر هیچ عنصری در ایندکس مشخص شده وجود نداشته باشد، ArgumentOutOfRangeException رد می شود.
امضای ()Remove عبارت است از : bool Remove(T item)
امضای ()RemoveAt عبارت است از : void RemoveAt(int index)
خروجی قطعه کد بالا به صورت زیر می باشد.
بررسی عناصر موجود در List
از متد ()Contains برای تعیین اینکه آیا یک عنصر در <List<T وجود دارد یا خیر استفاده کنید.
خروجی قطعه کد بالا به صورت زیر می باشد.
ویژگی های کلاس <List<T
1- Items
عنصر را در ایندکس مشخص شده دریافت یا تنظیم می کند.
2- Count
تعداد کل عناصر موجود در <List<T را برمی گرداند.
متدهای کلاس <List<T
1- Add
یک عنصر را به انتهای یک <List<T اضافه می کند.
2- AddRange
عناصر مجموعه مشخص شده را به انتهای یک <List<T اضافه می کند.
3- BinarySearch
عنصر را جستجو می کند و ایندکس عنصر را بر می گرداند.
4- Clear
تمام عناصر را از <List<T حذف می کند.
5- Contains
بررسی می کند که آیا عنصر مشخص شده در یک List<T> وجود دارد یا خیر.
6- Find
اولین عنصر را بر اساس تابع موقعیت مشخص شده پیدا می کند.
7- Foreach
از طریق <List<T تکرار می شود.
8- Insert
عنصری را در ایندکس مشخص شده در List<T> درج می کند.
9- InsertRange
عناصر مجموعه دیگری را در ایندکس مشخص شده درج می کند.
10- Remove
اولین رخداد عنصر مشخص شده را حذف می کند.
11- RemoveAt
عنصر را در ایندکس مشخص شده حذف می کند.
12- RemoveRange
تمام عناصری را که با تابع predicate ارائه شده مطابقت دارند حذف می کند.
13- Sort
همه عناصر را مرتب می کند.
14- TrimExcess
ظرفیت را با تعداد واقعی عناصر ست می کند.
15- TrueForAll
تعیین می کند که آیا هر عنصر در <List<T با شرایط تعریف شده با موقعیت تعیین شده مطابقت دارد یا خیر.