مقداردهی آرایه های دندانه ای (Jagged Array)
نام دوره: زبان سی شارپ مقدماتی
نویسنده: علی مقدم جاه (مدرس دوره)
مقداردهی آرایه های دندانه ای (Jagged Array)
در پست آموزش آرایههای دندانهای (Jagged Array)، متوجه شدید که هدف آرایههای دندانهای، جلوگیری از اتلاف حافظه است.
به عنوان مثال فرض کنید میخواهیم چهار اسم زیر را در یک آرایه دندانهای ذخیره کنیم:
ALI
SARA
ARMIN
ASGHAR
در نتیجه ابتدا آرایه دندانهای را متناسب با نیازمان که چهار سطر دارد تعریف میکنیم:
char [] [] names = new char [4] [];
سپس به ازای هر سطر، باید تعداد ستونهای داخل آن سطر را تعریف کنیم:
names [0] = new char [3];
names [1] = new char [4];
names [2] = new char [5];
names [3] = new char [6];
حال آرایه دندانهای names آماده مقداردهی کاراکترهای چهار اسم فوق بوده که با استفاده از روش زیر مقداردهی آنان را انجام میدهیم:
names [0, 0] = 'A';
names [0, 1] = 'L';
names [0, 2] = 'I';
names [1, 0] = 'S';
names [1, 1] = 'A';
names [1, 2] = 'R';
names [1, 3] = 'A';
names [2, 0] = 'A';
names [2, 1] = 'R';
names [2, 2] = 'M';
names [2, 3] = 'I';
names [2, 4] = 'N';
names [3, 0] = 'A';
names [3, 1] = 'S';
names [3, 2] = 'G';
names [3, 3] = 'H';
names [3, 4] = 'A';
names [3, 5] = 'R';
همچنین اگر بخواهید این مقادیر را توسط حلقههای تکرار از ورودی دریافت کنید، میتوانید از دو حلقه تو در تو استفاده کنید.
نکته: حلقه اول (بیرونی) برای حرکت بر روی سطرها و حلقه دوم (درونی) برای حرکت بر روی ستونها است.
for (int i = 0; i < 4; i++)
{
foreach (var item in names[i].Length)
{
Console.Write("Enter Char: ");
item = Convert.ToChar(Console.ReadLine());
}
}
نکته: از آنجایی که تعداد ستونهای هر سطر را بصورت جداگانه تعریف کردهایم، پس انگار هرکدام از سطرها خودشان یک مجموعه میباشند، پس میتوانیم با استفاده از دستور names[i].Length تعداد ستونهای هر سطر را محاسبه کنیم.
جهت شرکت در دورههای زبان برنامه نویسی سیشارپ، از کد تخفیف heplc30 استفاده کنید.