سلام درود خدمت همراهان همیشگی سایت پی وی لرن . با آموزش زبان برنامه نویسی #F همراهتون هستیم. به طور کلی ما خیلی از جاها در برنامه خود از آرایه ها استفاده می کنیم که همان اول برنامه طول آرایه را اعلام می کنیم و تا آخر برنامه طول آن آرایه همان است .در صورتی که شما خانه های بیش تری نیاز داشته باشبد یا خانه ای را در آرایه اضافه آورده باشید و یا اگر بخواهید یک خانه را حذف کنید یا شاید هم یک خانه اضافه کنید ،در این جا آرایه جواب گو نیست. بنابراین در این قسمت مبحث Mutable Lists در #F و ایجاد یک لیست قابل تغییر یا Mutable List در #F رو در دو قسمت بیان می نماییم. در ابتدا تعریف Mutable Lists در #F رو می بینیم.
کلاس <List<‘T نشان دهنده لیستی از نوع strongly از اشیائی است که می توانند از طریق ایندکس دسترسی پیدا کنند.
این یک همگرایی قابل تغییر از کلاس List است. و شبیه به آرایه ها است بطوری که می توانند از طریق یک ایندکس قابل دسترس باشند،
اما بر خلاف آرایه ها، لیست ها می توانند تغییر اندازه داشته باشند.
بنابراین در طول اعلان، نیازی به تعیین اندازه نیست. در ادامه ایجاد یک لیست قابل تغییر یا Mutable List در #F رو خواهیم داشت.
در این قسمت ایجاد یک لیست قابل تغییر یا Mutable List در #F رو داریم.
لیست ها با استفاده از کلید واژه جدید ایجاد می شوند و از constructor لیست فراخوانی می شوند. مثال زیر این را نشان می دهد.
1 2 3 4 5 6 7 8 9 10 11 12 | * Creating a List *) open System.Collections.Generic let booksList = new List<string>() booksList.Add("Gone with the Wind") booksList.Add("Atlas Shrugged") booksList.Add("Fountainhead") booksList.Add("Thornbirds") booksList.Add("Rebecca") booksList.Add("Narnia") booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index]) |
هنگامی که شما برنامه را کامپایل و اجرا می کنید، خروجی زیر را تولید می کند.
1 2 3 4 5 6 | 0: Gone with the Wind 1: Atlas Shrugged 2: Fountainhead 3: Thornbirds 4: Rebecca 5: Narnia |
در ادامه Mutable Lists در #F و ایجاد یک لیست قابل تغییر یا Mutable List در #F به کلاس لیست می پردازیم.
کلاس (List (T نوع strongly از اشیائی است که می توانند از طریق Index قابل دسترس باشند.
این روشی برای جستجو، مرتب سازی و مدیریت لیست ها را فراهم می کند.
جداول زیر، خواص، constructor و روش های کلاس لیست (T) را ارائه می دهند.
ویژگی | توضیحات |
---|---|
Capacity | تعداد کل عناصر ساختار داده های داخلی که می تواند بدون تغییر اندازه نگه داشته شود را می گیرد یا ست می کند. |
Count | تعداد عناصر موجود در لیست (T) را می گیرد. |
Item | عنصر را در شاخص مشخص می کند را می گیرد یا ست می کند. |
constructor یا سازنده | توضیحات |
---|---|
()(List(T | یک نمونه جدید از کلاس لیست (T) که خالی است و ظرفیت اولیه پیش فرض را دارد مقدار دهی اولیه می کند. |
((List(T)(IEnumerable(T | یک نمونه جدید از کلاس (List (T که شامل عناصر کپی شده از مجموعه مشخص شده است و ظرفیت کافی برای تعدیل تعداد عناصر کپی شده را دارد، مقدار دهی اولیه می کند. |
(List(T)(Int32 | یک نمونه جدید از کلاس (List (T که خالی است و ظرفیت اولیه مشخص شده را دارد مقدار دهی اولیه می کند. |
متد | توضیحات |
---|---|
Add | Add یک شی به انتهای لیست (T) اضافه می کند. |
AddRange | عناصر مجموعه مشخص شده را به انتهای لیست (T) اضافه می کند. |
AsReadOnly | بسته بندی (IList (T فقط خواندنی را برای مجموعه جاری بازمی گرداند. |
BinarySearch(T) | لیست کلی مرتب شده (T) برای عنصر را با استفاده از مقادیر پیش فرض جستجو می کند و ایندکس عنصر بر پایه صفر را برمی گرداند. |
((BinarySearch(T, IComparer(T | تمام (List(T مرتب شده را برای یک عنصر با استفاده از مقایسه جستجو می کند و ایندکس عنصر بر پایه صفر را برمی گرداند. |
((BinarySearch(Int32, Int32, T, IComparer(T | محدوده ای از عناصر را در (List(T مرتب شده برای یک عنصر با استفاده از مقادیر مشخص شده جستجو می کند و ایندکس مبتنی بر صفر عنصر را برمی گرداند. |
Clear | تمام عناصر را از (List(T حذف می کند. |
Contains | تعیین این که آیا یک عنصر در فهرست (T) است. |
(ConvertAll(TOutput | عناصر موجود در (List(T فعلی را به نوع دیگری تبدیل می کند و یک لیست حاوی عناصر تبدیل شده را باز می گرداند. |
([]CopyTo(T | کل (List(T را به یک آرایه یک بعدی یکپارچه کپی می کند. که در ابتدای آرایه target شروع می شود. |
(CopyTo(T[], Int32 | کل (List(T را به یک آرایه یک بعدی یکپارچه کپی می کند. که از ایندکس مشخص شده آرایه هدف یا target شروع می شود. |
(CopyTo(Int32, T[], Int32, Int32 | محدوده ای از عناصر از (List(T را به یک آرایه یک بعدی یکپارچه کپی می کند، با شروع از ایندکس مشخص شده آرایه هدف. |
(Equals(Object | تعیین این که آیا آبجکت مشخص شده برابر با آبجکت فعلی است یا خیر. |
Exists | تعیین می کند که آیا (List(T شامل عناصری است که مطابق با شرایط تعریف شده توسط پیش فرض مشخص شده است. |
Finalize | اجازه می دهد که یک آبجت را برای منابع آزاد امتحان کنید و قبل از این که از طریق کالکشن garbage بازیابی شوند، سایر عملیات پاکسازی انجام شود. |
Find | جستجو برای یک عنصر که مطابق با شرایط تعریف شده توسط پیش فرض مشخص شده است، و رخداد اول را در کل (List(T باز می گرداند. |
FindAll | تمام عناصر را که مطابق شرایط تعیین شده توسط پیش فرض مشخص شده است را بازیابی می کند. |
((FindIndex(Predicate(T | جستجو برای یک عنصر که مطابق با شرایط تعریف شده توسط پیش فرض مشخص شده است، و ایندکس مبتنی بر صفر رخداد اول را در کل لیست (T) باز می گرداند. |
((FindIndex(Int32, Predicate(T | جستجو برای یک عنصر که مطابق با شرایط تعریف شده توسط پیش فرض مشخص شده است و شاخص مبتنی بر صفر رخداد اول را در محدوده ای از عناصر (List(T که از ایندکس مشخص شده به آخرین عنصر گسترش می یابد، باز می گرداند. |
((FindIndex(Int32, Int32, Predicate(T | جستجو برای یک عنصر که مطابق با شرایط تعریف شده توسط پیش فرض مشخص شده است، و ایندکس مبتنی بر صفر رخداد اول را در محدوده عناصر (List(T که در فهرست مشخص شده شروع می شود و تعداد مشخصی از عناصر را نشان می دهد، باز می گرداند. |
FindLast | جستجو برای یک عنصر که مطابق با شرایط تعریف شده توسط پیش فرض مشخص شده است، و آخرین رخداد را در کل (List(T باز می گرداند. |
((FindLastIndex(Predicate(T | جستجو برای یک عنصر که مطابق با شرایط تعریف شده توسط پیش فرض مشخص شده است و ایندکس مبتنی بر صفر آخرین رخداد را در کل (List(T برمی گرداند. |
((FindLastIndex(Int32, Predicate(T | جستجو برای یک عنصر که مطابق با شرایط تعریف شده توسط پیش فرض مشخص شده است و ایندکس مبتنی بر صفر آخرین رویداد را در محدوده عناصر (List(T که از اولین عنصر به ایندکس مشخص شده گسترش می دهد، را برمی گرداند. |
((FindLastIndex(Int32, Int32, Predicate(T | جستجو برای یک عنصر که مطابق با شرایط تعریف شده توسط پیش فرض مشخص شده است و ایندکس مبتنی بر صفر آخرین رخداد در محدوده عناصر موجود در (List(T را که حاوی تعداد مشخصی از عناصر است و در فهرست مشخص شده است برمی گرداند. |
ForEach | اقدامات مشخص شده را بر روی هر عنصر (List(T انجام می دهد. |
ادامه مبحث ایجاد یک لیست قابل تغییر یا Mutable List در #F و Mutable Lists در #F رو به جلسه بعدی موکول می کنیم.
ایجاد یک لیست قابل تغییر یا Mutable List در #F و Mutable Lists در #F رو بیان نمودیم.
و دیدیم که بر خلاف آرایه ها که مشکل عدم تغییر مقدار رو داشتند،
لیست ها می توانند تغییر اندازه داشته باشند.
ادامه مباحث رو در قسمت بعدی خواهیم دید.