ArrayList در سی شارپ
در #C یک ArrayList مجموعه ای غیر عمومی (non-generic) از اشیاء است که اندازه آنها به صورت پویا افزایش می یابد. در واقع این همان آرایه است با این تفاوت که اندازه آن به صورت پویا افزایش می یابد.
از ArrayList می توان برای افزودن داده های ناشناخته در جایی که انواع و اندازه داده ها را نمی دانید استفاده کرد.
ایجاد یک ArrayList
کلاس ArrayList در فضای نام System.Collections وجود دارد. در مثال زیر یک شی از نوع ArrayList با استفاده از کلمه کلیدی new ایجاد شده است.
اضافه کردن عناصر در ArrayList
برای افزودن عناصر در ArrayList از متد ()Add یا object initializer syntax استفاده کنید.
یک ArrayList می تواند حاوی چندین مقدار تهی (null) و همچنین مقادیر تکراری باشد.
خروجی قطعه کد بالا در ادامه نشان داده شده است.
از متد AddRange (ICCollection c) برای اضافه کردن کل Array، HashTable، SortedList، ArrayList، BitArray، Queue و Stack در ArrayList استفاده کنید.
خروجی قطعه کد بالا در ادامه نشان داده شده است.
دسترسی به ArrayList
عملکرد کلاس ArrayList به این صورت است که interface به نام IList را پیاده سازی می کند. بنابراین، به عناصر می توان با استفاده از indexer ، به همان روشی که یک آرایه انجام می دهد، دسترسی داشت. Index از صفر شروع می شود و برای هر یک از عناصر بعدی یکی یکی افزایش می یابد.
یک سبک صریح به انواع مناسب مورد نیاز است، یا از متغیر var استفاده کنید.
تکرار یک ArrayList
ArrayList همچنین interface به نام ICollection را پیاده سازی می کند که از تکرار انواع مجموعه پشتیبانی می کند. بنابراین، از foreach و حلقه for برای تکرار یک ArrayList استفاده کنید. ویژگی Count در یک ArrayList تعداد کل عناصر ArrayList را برمی گرداند.
خروجی قطعه کد بالا در ادامه نشان داده شده است.
درج عناصر در ArrayList
از متد ()Insert برای درج یک عنصر در ایندکس مشخص شده در یک ArrayList استفاده کنید.
امضا: void Insert (int index, Object value)
خروجی قطعه کد بالا در ادامه نشان داده شده است.
از متد ()InsertRange برای درج یک مجموعه در ArrayList در ایندکس تعیین شده استفاده کنید.
امضا: Void InsertRange (int index, ICollection c)
خروجی قطعه کد بالا در ادامه نشان داده شده است.
حذف عناصر از ArrayList
از متدهای ()Remove()، RemoveAt یا RemoveRange برای حذف عناصر از ArrayList استفاده کنید.
خروجی قطعه کد بالا در ادامه نشان داده شده است.
بررسی عنصر در ArrayList
از متد ()Contains برای تعیین اینکه آیا عنصر مشخص شده در ArrayList وجود دارد یا خیر استفاده کنید. اگر وجود داشته باشد true را برمی گرداند در غیر این صورت false را برمی گرداند.
خروجی قطعه کد بالا در ادامه نشان داده شده است.
نکته مهم:
به دلیل مسائل و مشکلات مربوط با عملکرد و کارایی، استفاده از کلاس ArrayList توصیه نمی شود. در عوض، از <List<object برای ذخیره اشیاء ناهمگن استفاده کنید. برای ذخیره داده هایی از نوع داده مشابه، از <Generic List<T استفاده کنید.
ویژگی های ArrayList
1- Capacity
تعداد عناصری را که ArrayList می تواند داشته باشد را دریافت یا تنظیم می کند.
2- Count
تعداد عناصر موجود در ArrayList را دریافت می کند.
3- IsFixedSize
مقداری دریافت می کند که نشان می دهد ArrayList اندازه ثابتی دارد یا خیر.
4- IsReadOnly
مقداری دریافت می کند که نشان می دهد ArrayList فقط خواندنی است یا خیر.
5- Item
عنصر را در ایندکس تعیین شده دریافت یا تنظیم می کند.
متدهای ArrayList
1- ()Add()/AddRange
متد ()Add یک عنصر را به انتهای ArrayList اضافه می کند.
متد ()AddRange تمام عناصر مجموعه مشخص شده را به ArrayList اضافه می کند.
2- ()Insert()/InsertRange
متد ()Insert یک عنصر را در ایندکس تعیین شده در ArrayList وارد می کند.
متد ()InsertRange تمام عناصر مجموعه مشخص شده را با شروع از ایندکس تعیین شده در ArrayList وارد می کند.
3- ()Remove()/RemoveRange
متد ()Remove عنصر مشخص شده را از ArrayList حذف می کند.
متد ()RemoveRange محدوده یا تعدادی از عناصر را از ArrayList حذف می کند.
4- ()RemoveAt
عنصر موجود در ایندکس مشخص شده را از ArrayList حذف می کند.
5- ()Sort
کل عناصر ArrayList را مرتب می کند.
6- ()Reverse
ترتیب عناصر را در کل ArrayList معکوس می کند.
7- Contains
بررسی می کند که آیا عنصر مشخص شده در ArrayList وجود دارد یا خیر. در صورت وجود true در غیر این صورت false را برمی گرداند.
8- Clear
تمام عناصر موجود در ArrayList را حذف می کند.
9- CopyTo
تمام عناصر یا تعدادی عناصر را در آرایه compitible کپی می کند.
10- GetRange
تعداد مشخصی از عناصر را از ایندکس تعیین شده از ArrayList برمی گرداند.
11- IndexOf
عنصر مشخص شده را جستجو می کند و در صورت یافتن ایندکس صفر را برمی گرداند. اگر عنصر پیدا نشد 1- را برمی گرداند.
12- ToArray
آرایه سازگار (compitible array) را از یک ArrayList برمی گرداند.