آرایه های چندبعدی (Multidimensional arrays)
اینجا با «آرایه های چندبعدی (Multidimensional Arrays)» آشنا می شویم. آرایه (Array) یعنی جعبه ای با چند خانه. وقتی چند ردیف و ستون داریم، می شود چندبعدی. مثل جدول نمره ها در مدرسه. با این ساختار، داده ها منظم تر می شوند.
آرایه دوبعدی یعنی چی؟
آرایه دوبعدی مثل جدول است. ردیف داریم و ستون داریم. عنصر (Element) یعنی یک خانه از جدول. اندیس (Index) عدد جای عنصر است. اندیس ها از صفر شروع می شوند.
ساخت یک آرایه دوبعدی
int[,] numbers = { { 1, 4, 2 }, { 3, 6, 8 } };
نکته: علامت [,] یعنی دوبعدی است. برای سه بعدی از [,,] استفاده می شود.
دسترسی به عناصر در آرایه دوبعدی
برای دسترسی، دو اندیس می دهیم: اول ردیف، بعد ستون. مثل جدول نمره ها: اول ردیف دانش آموز، بعد ستون درس.
int[,] numbers = { { 1, 4, 2 }, { 3, 6, 8 } };
Console.WriteLine(numbers[0, 2]);
نکته: اندیس از صفر شروع می شود. پس ردیفِ اول، اندیس صفر است.
تغییر مقدار یک خانه
می خواهیم مقدار خانه ردیفِ اول و ستونِ اول را عوض کنیم.
int[,] numbers = { { 1, 4, 2 }, { 3, 6, 8 } };
numbers[0, 0] = 5;
Console.WriteLine(numbers[0, 0]);
پیمایش آرایه دوبعدی
با foreach همه خانه ها را یکی یکی می خوانیم. مثل قدم زدن روی همه مربع های جدول.
int[,] numbers = { { 1, 4, 2 }, { 3, 6, 8 } };
foreach (int i in numbers)
{
  Console.WriteLine(i);
}
پیمایش با for و شمارنده ها
اینجا از for توی for استفاده می کنیم. با GetLength(0) تعداد ردیف ها و با GetLength(1) تعداد ستون ها را می گیریم.
int[,] numbers = { { 1, 4, 2 }, { 3, 6, 8 } };
for (int i = 0; i < numbers.GetLength(0); i++)
{
  for (int j = 0; j < numbers.GetLength(1); j++)
  {
    Console.WriteLine(numbers[i, j]);
  }
}
گام های عملی سریع
- یک آرایه دوبعدی بساز. مثل جدول کوچک.
- با دو اندیس مقدار بخوان. اول ردیف، بعد ستون.
- یک مقدار را تغییر بده. نتیجه را چاپ کن.
- با foreachهمه خانه ها را چاپ کن.
- با forتو در تو، جدول را کامل بگرد.
برای آشنایی با آرایه های معمولی، صفحه آرایه ها را ببین. سپس برای کار با توابع، به متدها برو. اگر تازه ای، مقاله آرایه های چندبعدی را هم کنار آن مطالعه کن.
جمع بندی سریع
- آرایه دوبعدی مثل یک جدول است.
- دسترسی با دو اندیس انجام می شود.
- [,]یعنی دوبعدی بودن.
- GetLengthبرای تعداد بُعدها مفید است.
- foreachساده است؛- forدقیق تر است.
