مشاوره رایگان
دریافت لینک های دانلود دریافت پستی درب منزل مبلغ کل: تومان
جهت دریافت کد تخفیف به کانال تلگرام مراجعه و یا با پشتیبان آنلاین هماهنگ نمایید

آموزش سی شارپ قسمت 64: Collection ها و List ها


آرایه ها برای نگهداری تعداد زیادی از مقادیر با یک نام مفید هستند. Collection ها نیز همین کار را انجام می دهند. #C حاوی گروهی داخلی از کلاسها میباشد که مخصوص  collection ها هستند. این کلاسها بسیار پرکاربرد هستند

در آرایه داده هایی از یک نوع را ذخیره می کنیم. یک آرایه که حاوی اعداد است نمی تواند رشته ها را در خود جای دهد و یا بالعکس. برای مثال نمی توانیم حالتهای زیر را داشته باشیم:

arrayPos[0] = 1;
arrayPos[1] = "two";

اولین جایگاه یک عدد را در خود نگهمی دارد و دومین جایگاه یک متن. در #C نمی توانید اینچنین حالتی را داشته باشید. اما میتوانیم هر دو نوع داده را در یک collection بنام Hashtable داشته باشیم. با Collection ها همچنین میتوانیم داده ها را در یک List مرتب کنیم یا آیتمها را حذف و یا اضافه نماییم.

در اینجا با یک Collection class بنام Listst شروع می کنیم.

Lists در #C

هنگامی که نیاز داریم آیتمها را به List اضافه یا از آن کم و یا مربت کنیم از Collection استفاده می کنیم. بعنوان مثال فرض کنید معلمی هستید با کلاسی تشکیل شده از 10 دانش آموزش .باید لیستی از اسامی دانش آموزان داشته باشید و بتوانید دانش آموزان جدید را به آن اضافه و دانش آموزانی را که کلاس را ترک می کنند از لیست حذف و اسامی را بترتیب حروف الفبا مرتب کنید. اگر بخواهید از آرایه ها استفاده کنید ایجاد یک چنین لیستی کار سختی خواهد بود.

بنابراین یک پروژه جدید ایجاد کنید. یک دکمه و یک List box به فرم اضافه کنید. بر روی دکمه دابل کلیک کنید تا به پنجره کد دسترسی پیدا کنید. به بالای کدها نگاه کنید. مانند تصویر زیر لیستی از عبارتهای استفاده شده را خواهید دید. (خط 1 تا 7):

A List of Using Statements in C#

عبارت استفاده ای را که برای List نیاز داریم System.Collections.Generics نام دارد. اگر این عبارت را در لیست عبارتهای استفاده شده نیمی بینید خود آن را اضافه نمایید.

برای تنظیم یک لیست بر روی دکمه دابل کلیک کنید تا به کد آن دسترسی پیدا کنید.

خط زیر را به کد اضافه کنید:

List<string> students = new List<string>();

در کد بالا با کلمه List شروع کرده ایم. سپس از پرانتزهای شکسته < >  استفاده می کنیم. در داخل پرانتزهای شکسته یک متغیر یا نوع متغیر را قرار می دهیم. در اینجا ما string را قرار داده ایم . در اینجا با این کد به #C میگوییم که متغیر متنی را در List نگهدارد. لیست ما students نام دارد. بعد از علامت مساوی = از کلمه کلیدی new استفاده کرده ایم. سپس مجددا بخش  <List<string را آورده ایم. اینبار در انتهای عبارت یک جف پرانتز ( ) قرار میدهیم که به #C میگوییم که یک لیست جدید از مقادیر متنی را ایجاد کند.

کد بصورت زیر خواهد بود:

C# code to set up a List

بعد از تعریف لیست باید آن را با داده پر کنیم. سه خط زیر را به کد اضافه کنید.

students.Add("Jenny");
students.Add("Peter");
students.Add("Mary Jane");

کد شما باید بصوری زیر باشد:

Adding items to a C# List

  بعد از تایپ نام List (در اینجا students) سی شارپ یک لیست IntelliSense را نمایش میدهد.

IntelliSense dropdown to add items to a List

این لیستی از تمام Methodها و خصوصیتهاییست که List دازد. گزینه ای که برای اضافه کردن آیتمها به List نیاز داریم ( )Add نام دارد. در بین پرانتزهای Add داده ای را که میخواهیم به List اضافه کنیم قرار می دهیم.

students.Add( "Jenny" );

برای هریک از آیتمهای Collection یک خط جدید برای اضافه کردن آیتم نیاز داریم.

برای دسترسی به آیتمهای List آز حلقه foreach استفاده می کنیم. این حلقه را به دکمه خود اضافه کنید:

foreach (string child in students)
{

listBox1.Items.Add( child );

}

به این ترتیب تمام آیتمها را در حلقه قرار میدهیم و سپس آنها را به List box اضافه می کنیم.

می توانیم از یک حلقه for نیز استفاده کنیم:

for (int i = 0; i < students.Count; i++)
{

listBox1.Items.Add( students[i] );

}

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

در حلقه for مانند یک آرایه معمولی از کروشه  [ ] به همراه index number استفاده می کنیم. 

اما اگر بخواهیم یک collection را در حلقه قرار دهیم کد بالا انتخاب مناسبی نیست. انتخاب بهتر استفاده از حلقه foreach آست.

یک حلقه foreach هنگامی که دیگر آیتمی در آرایه یا collection باقی نمانده باشد خاتمه می یابد. بر خلاف حلقه for احتیاجی نیست به #C بگوییم که چه زمان آیتمها تمام می شود. در یک حلقه foreach سی شارپ خود میداند که چه وقت باید حلقه را به پایان برساند.

میتوانیم هر زمانی آیتم جدیدی به لیست اضافه کنیم. در زیر مثالی برای تمرین میاوریم:

Add List item

دانش آموز چهارم ( Azhar ) را به لیست اضافه میکنیم و آن را در List box نمایش می دهیم.

کد جدید را به دکمه اضافه کنید. برنامه را اجرا و دکمه را کلیک کنید. فرم باید بصورت زیر باشد:

ArrayList Form

 

مرتب کردن لیست در #C

مرتب کردن یک لیست در #C عملیات پیچیده ای نیست. برای این کار از Sort Method استفاده می کنیم.

students.Sort();

در اینجا کدهایی برای تمرین آورده ایم. خطهای جدید باید به انتهای کد اضافه شوند:

students.Sort();

listBox1.Items.Add("=================");

foreach (string child in students)
{

listBox1.Items.Add(child);

}

برنامه را اجرا و امتحان کنید.بعد از کلیک کردن دکمه Listbox بصورت زیر باید باشد:

A sorted ArrayList

همانطور که میبینید آیتمها بترتیب حروف الفبا از  A تا Z مرتب می شوند. میتوانید عملیات مرتب کردن را بلعکس از Z تا A انجام دهید. یکی از راههای انجام این عملیات استفاده از Reverse method متد است.

students.Reverse( );

کدنویسی اضافه ای احتیاج نیست.

حذف آیتمها از لیست

برای حذف آیتمها از لیست میتوانیم از  Remove method یا RemoveRange method 

Remove method آیتمهای تکی را از لیست حذف میکند. بصورت زیر از آن استفاده می کنیم:

students.Remove( "Peter" );

در بین پرانتز های  Remove آیتمی را که میخواهیم حذف کنیم قرار می دهیم

اگر بخواهیم بیشتر از یک آیتم را حذف کنیم از RemoveRange استفاده می کنیم. بصورت زیر:

students.RemoveRange( 0, 2 );

اولین عدد در بین پرانتزهای RemoveRange آیتمی است که عمل حذف باید از آن شروع شود. عدد دوم تعداد آیتمهایی است که باید حذف شود.

برای تمرین کدهای زیر را به دکمه اضافه کنید:

students.RemoveRange(0, 2);

listBox1.Items.Add("=================");

foreach (string child in students)
{

listBox1.Items.Add(child);

}

تا اینجا کار با لیستها کافیست . لیستها کاربردهای زیادی در #C دارند. بررسی بیشتر را به عهده خودتان میگذاریم.

در تمرین بعدی به بررسی کالکشن Hashtable خواهیم پرداخت

فصلِ: 1 , تعداد قسمت ها: 9 , سطح: صفر تا صد
موضوعات: آموزش سی شارپ

این فصل در یک نگاه:

آموزش ارسال پیامک، آموزش ارسال پیامک تکی و گروهی ، ارسال پیامک به صورت اختصاصی برای هر مشترک، دریافت پیامک، مشاهده وضعیت…

توضیحات کلی مجموعه:   آیا می دونید قیمت نرم افزارهای مدیریت پیامک در حدود 150 هزار تومان است؟ اما توسط این دوره شما میتونید با مبلغ بسیار کمتر یک نرم افزار مدیریت پیامک رو به صورت کاملا حر…
فصلِ: 9 , تعداد قسمت ها: 59 , سطح: صفر تا صد
موضوعات: آموزش سی شارپ

این فصل در یک نگاه:

در این فصل که فصل پایانی این دوره می باشد در مورد نحوه ساختن فایل نصبی سریع یا همان quick installer که روش پیشنهاد شده م…

توضیحات کلی مجموعه: پس از بازخوردهای بسیار خوبی که از دوره های آموزش برنامه نویسی سیستم اتوماسیون اداری و آموزش برنامه نویسی سیستم فروش و انبارداری مشاهده کردیم، تصمیم گرفتیم با توجه به درخ…
فصلِ: 13 , تعداد قسمت ها: 120 , سطح: صفر تا صد
موضوعات: آموزش سی شارپ

این فصل در یک نگاه:

در این فصل که فصل آخر از مجموعه بزرگ آموزش سیستم اتوماسیون اداری می باشد در ابتدا در مورد اسناد و نامه های خارج از سازما…

دوره صفر تا صد  آموزش برنامه نویسی و پیاده سازی سیستم اتوماسیون اداری تحت شبکه. (توصیه می شود دومی مجموعه را حتما ببینید) امروزه اطلاعات یکی از مهمترین و با ارزشترین منابع هر اداره و یا ساز…
فصلِ: 4 , تعداد قسمت ها: 14 , سطح: مقدماتی

این فصل در یک نگاه:

توضیح تنظیمات گرافیک و صدا در یونیتی پیاده سازی منو ها …

به نام خدا   بازی‌سازی یک حرفه بسیار جذاب است و تبدیل شدن به یک بازی‌ساز حرفه‌ای آرزوی همه ماست. اینکه بتوانیم دنیای خاصی خلق کنیم و در این دنیا قوانین خود را پیاده کنیم، همیشه ما را به وج…
فصلِ: 11 , تعداد قسمت ها: 92 , سطح: صفر تا صد

این فصل در یک نگاه:

اجرای سیستم روی سیستم، قرار دادن سیستم روی سرور، تعریف Connetion String، آشنایی با فایل App.config، ساخت رشته اتصال به ص…

مهمترین تکنولوژیهای استفاده شده در این دوره پروژه محور (سیستم فروش کالا و انبارداری) طراحی گرافیکی به روش WPF (Windows Presentaion Foundation) آموزش کامل برنامه نویسی xaml (برای طراحی های …
فصلِ: 5 , تعداد قسمت ها: 25 , سطح: صفر تا صد

این فصل در یک نگاه:

فصل پنجم…

توضیحات کلی مجموعه: درباره گیت: لذت پیش بردن پروژه های برنامه نویسی خود را با بهترین ورژن کنترل سیستم جهان تجربه کنید کامل ترین دوره ی آموزشی گیت و گیت هاب به همراه مثال های کاربردی گی…

تولید شده توسط کلیک سایت

پشتیبانی آنلاین
آماده پاسخگویی هستیم
انتخاب تصویر جهت ارسال:
در حال ضبط صدا

(جهت توقف و یا لغو ضبط از دکمه های زیر استفاده کنید)

توقف و ارسال :
لغو ضبط
در حال حاضر تمامی کارشناسان آفلاین هستند. همواره می توانید با شماره تلگرام / واتساپ 09010005000 به صورت آنلاین با ما در ارتباط باشید. جهت ورود به واتساپ کلیک کنید
0 پیام جدید
پشتیبان در حال تایپ ...
ارسال تصویر ضبط صدا
0 کارشناسان آنلاین می باشند
این گفت و گو توسط پشتیبان به اتمام رسید