آموزش ایجاد آرایه های چند بعدی در سی شارپ
یک آرایه ی چندبعدی، آرایه ای است که از چند اندیس برای دسترسی به عناصر خود استفاده می کند. بعنوان مثال، فرض کنید میخواهیم ارتفاع یک تپه را رسم کنیم. برای انجام این کار، می توانیم یک موقعیت با استفاده از دو مختصات x و y مشخص کنیم.
ما می خواهیم از این دو مختصات، بعنوان اندیس استفاده کنیم، به طوری که یک آرایه به نام hillHeight ارتفاع را با استفاده از هر جفت مختصات ذخیره می کند. این شامل استفاده از آرایه های چندبعدی می شود. یک آرایه ی دوبعدی به صورت زیر تعریف می شود:
<baseType>[,] <name>;
آرایه هایی که ابعاد بیشتری داشته باشند، به علامت های کامای بیشتری نیاز دارند:
<baseType>[,,,] <name>;
این کد باعث می شود یک آرایه ی چهاربعدی تعریف شود. برای انتساب مقادیر نیز از یک شیوه ی نوشتاری(سینتکس) مشابه، به همراه کاماهایی که سایزها را جدا می کنند، استفاده می شود. تعریف و مقداردهی آرایه ی دوبعدی hillHeight که نوع پایه(base type) آن double است، و سایز x برابر با 3 و سایز y برابر با 4 است، به موارد زیر نیاز دارد:
double[,] hillHeight = new double[3,4];
به طور جایگزین، می توانیم از مقادیر لیترال برای انتساب مقادیر اولیه استفاده کنیم. در زیر، از بلوک های تودرتوی آکولادها که با کاما از یکدیگر جدا شده اند، استفاده کرده ایم:
double[,] hillHeight = { { 1, 2, 3, 4 }, { 2, 3, 4, 5 }, { 3, 4, 5, 6 } };
این آرایه ابعاد یکسانی با آرایه ی قبلی دارد، یعنی سه ردیف و چهار ستون دارد. با ارائه ی مقادیر لیترال، این ابعاد به طور ضمنی تعریف می شوند. برای دسترسی به عناصر تکی، از یک آرایه ی چندبعدی، به سادگی می توانیم اندیس ها را که با کاما از یکدیگر جدا شده اند، مشخص کنیم:
hillHeight[2,1]
سپس می توانیم این عنصر و دیگر عناصر را دستکاری کنیم. این عبارت به دومین عنصر از سومین آرایه ی تودرتو دسترسی می یابد؛ همان طور که قبلاً تعریف شده است(مقدار مورد نظر برابر با 4 خواهد بود). به یاد داشته باشید که شمارش از 0 آغاز می شود و اینکه عدد اول، آرایه ی تودرتو را مشخص می کند. به عبارت دیگر، عدد اول، جفت پرانتزها را مشخص می کند و عدد دوم عنصری که در داخل آن جفت آکولاد قرار دارد را مشخص می کند. اگر بخواهید این آرایه را به صورت بصری مشاهده کنید، به تصویر 5.11 توجه کنید.
(تصویر 5.11)
حلقه foreach به ما امکان دسترسی به همه عناصر را به صورت چند بعدی میدهد، درست مانند آرایههای تک بعدی:
double[,] hillHeight = { { 1, 2, 3, 4 }, { 2, 3, 4, 5 }, { 3, 4, 5, 6 } };
foreach (double height in hillHeight)
{
WriteLine($"{height}");
}
ترتیبی که عناصر در خروجی نشان داده می شوند، همان ترتیبی است که برای اختصاص مقادیر لیترال استفاده میشود. این دنباله به صورت زیر است:
hillHeight[0,0]
hillHeight[0,1]
hillHeight[0,2]
hillHeight[0,3]
hillHeight[1,0]
hillHeight[1,1]
hillHeight[1,2]
...
- بازدید: 97
1. سعی کنید نظرات شما مرتبط با مقاله ی مورد نظر باشد، در غیر این صورت پاسخ داده نخواهد شد.
2. سوالات خود را به صورت کوتاه بیان کنید و از پرسیدن چند سوال به طور همزمان خودداری کنید.
3. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.