سلام درود خدمت همراهان همیشگی سایت پی وی لرن . با آموزش زبان برنامه نویسی #F همراهتون هستیم. همون طور که در مطالب قبلی اشاره شد، دیدیم که بزرگترین مشکل آرایهها این است که اندازهی ثابتی دارند و امکان تغییر اندازه پس از تعریف آن ها وجود ندارد. بنابراین لیست ها و Mutable Lists در #F رو در جلسه پیشین شروع نمودیم. با ایجاد یک لیست قابل تغییر یا Mutable List آشنا شدیم. در این بخش با متدهای مربوط به (List(T در #F بیشتر آشنا خواهیم شد.
لیسته شبیه به آرایه ها هستند بطوری که می توانند از طریق یک ایندکس قابل دسترس باشند،
اما بر خلاف آرایه ها، لیست ها می توانند تغییر اندازه داشته باشند.
لیست ها از constructor لیست فراخوانی می شوند.
کلاس (List(T روشی برای جستجو، مرتب سازی و مدیریت لیست ها را فراهم می کند.
متد | توضیحات |
GetEnumerator | یک شمارنده را که ازطریق (List(T تکرار می کند، بازمی گرداند. |
GetHashCode | به عنوان تابع hash به طور پیش فرض عمل می کند. (توزیع شده از Object.) |
GetRange | یک کپی shallow از طیف وسیعی از عناصر در سورس (List(T ایجاد می کند. |
GetType | نوع نمونه فعلی را می گیرد . (توزیع شده از Object) |
IndexOf(T) | جستجو برای آبجت مشخص شده و ایندکس مبتنی بر صفر رخداد اول را در کل (List(T نشان می دهد. |
(IndexOf(T, Int32 | جستجو برای شی مشخص شده و برمی گرداند شاخص مبتنی بر صفر اولین رخداد را در محدوده ای از عناصر (List(T که از ایندکس مشخص شده به عنصر آخر توسعه می دهد. |
(IndexOf(T, Int32, Int32 | جستجو برای آبجکت مشخص شده و ایندکس مبتنی بر صفر اولین رخداد را در محدوده عناصر (List(T که از ایندکس مشخص شده شروع می شود و شامل تعداد مشخصی از عناصر است را نشان می دهد. |
Insert | یک عنصر را در (List(T در ایندکس مشخص وارد می کند. |
InsertRange | عناصر کالکشن را در (List(T در ایندکس مشخص شده قرار می دهد. |
(LastIndexOf(T | جستجو برای آبجکت مشخص شده و ایندکس مبتنی بر صفر آخرین رخداد در کل (List(T را بر می گرداند. |
(LastIndexOf(T, Int32 | جستجو برای آبجکت مشخص شده و ایندکس مبتنی بر صفر آخرین رویداد را در محدوده عناصر لیست (List(T که از اولین عنصر به ایندکس مشخص شده گسترش می دهد. |
(LastIndexOf(T, Int32, Int32 | جستجو برای آبجکت مشخص شده و ایندکس مبتنی بر صفر آخرین رخداد در محدوده عناصر (List(T که حاوی تعداد مشخصی از عناصر است و در ایندکس مشخص شده به پایان می رسد. |
MemberwiseClone | یک کپی shallow از آبجکت فعلی را ایجاد می کند. (توزیع شده از Object.) |
Remove | اولین رخداد یک آبجکت خاص را از(List(T حذف می کند. |
RemoveAll | حذف تمام عناصر که مطابق با شرایط تعریف شده توسط پیش فرض مشخص شده است. |
RemoveAt | عنصر را در ایندکس مشخص (List(T حذف می کند. |
RemoveRange | تعدادی از عناصر را از (List(T حذف می کند. |
()Reverse | ترتیب عناصر در کل (List(T را تغییر می دهد. |
(Reverse(Int32, Int32 | ترتیب عناصر در محدوده مشخص را تغییر می دهد. |
()Sort | عناصر را در کل (List(T با استفاده از مقادیر پیش فرض، مرتب می کند. |
((Sort(Comparison(T | عناصر موجود در کل (List(T با استفاده از سیستم مشخص مرتب می شود. (Comparison(T. |
((Sort(IComparer(T | عناصر را در کل (List(T با استفاده از مقایسه مشخص شده مرتب می کند. |
((Sort(Int32, Int32, IComparer(T | عناصر را در محدوده ای از عناصر در (List(T با استفاده از comparer مشخص شده مرتب می کند. |
ToArray | عناصر (List(T را به یک آرایه جدید کپی می کند. |
ToString | یک رشته را که نشان دهنده آبجکت فعلی است، بر می گرداند. (توزیع شده از Object.) |
TrimExcess | ظرفیت را برای تعداد واقعی عناصر موجود در (List(T ست می کند، اگر این تعداد کمتر از یک مقدار threshold یا آستانه باشد. |
TrueForAll | تعیین این که آیا هر عنصر در (List(T مطابق با شرایط تعریف شده توسط پیش فرض مشخص شده است. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | (* 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") printfn"Total %d books" booksList.Count booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index]) booksList.Insert(2, "Roots") printfn("after inserting at index 2") printfn"Total %d books" booksList.Count booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index]) booksList.RemoveAt(3) printfn("after removing from index 3") printfn"Total %d books" booksList.Count booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index]) |
هنگامی که شما برنامه را کامپایل و اجرا می کنید، برنامه خروجی زیر را تولید می کند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | Total 6 books 0: Gone with the Wind 1: Atlas Shrugged 2: Fountainhead 3: Thornbirds 4: Rebecca 5: Narnia after inserting at index 2 Total 7 books 0: Gone with the Wind 1: Atlas Shrugged 2: Roots 3: Fountainhead 4: Thornbirds 5: Rebecca 6: Narnia after removing from index 3 Total 6 books 0: Gone with the Wind 1: Atlas Shrugged 2: Roots 3: Thornbirds 4: Rebecca 5: Narnia |
همراهان محترم با آموزش زبان برنامه نویسی #F همراهتون هستیم. برای رفع بزرگترین مشکل آرایهها که اندازهی ثابتی دارند و امکان تغییر اندازه پس از تعریف آن ها وجود ندارد، لیست ها و Mutable Lists در #F رو در جلسه پیشین شروع نمودیم. با ایجاد یک لیست قابل تغییر یا Mutable List آشنا شدیم و در این بخش ادامه بررسی متدهای مربوط به (List(T در #F رو داشتیم. امیدوارم از مباحث بیان شده استفتده لازم رو برده باشین. موفق و پیروز باشین.