آرایه های چند بعدی در C#
در فصل قبلی، شما با آرایهها آشنا شدید که به آنها آرایههای تک بعدی نیز گفته میشود. این آرایهها بسیار مفید هستند و شما در C#، زیاد از آنها استفاده خواهید کرد. اما اگر بخواهید دادهها را به صورت جدولی، مانند یک جدول با ردیفها و ستونها، ذخیره کنید، باید با آرایههای چند بعدی آشنا شوید.
آرایه چند بعدی در واقع آرایهای از آرایهها است.
آرایهها میتواند هر تعداد بعد داشته باشند. رایج ترین آنها آرایههای دو بعدی (2D) هستند.
آرایه های دو بعدی در C#
برای ایجاد یک آرایه دو بعدی (Two-Dimensional)، هر آرایه را در براکتهای مجعت {} قرار میدهیم و با کاما (,) از هم جدا می کنیم.
int[,] numbers = { {1, 5, 3}, {4, 7, 9} };
نکته: کاما تک (,) نشان میدهد که آرایه دو بعدی است. نشانه آرایه سه بعدی دو تا کاما (,) است.
آرایه number اکنون شامل دو آرایه است. اولین آرایه شامل سه عدد 1، 5 و 3 دارد و دومین آرایه شامل سه عدد 4، 7 و9 است.
هر سطر نمایانگر یکی از آرایهها است و هر عدد یکی از مقدار درون آنها.
برای تصور بهتر، میتوان آن را مانند یک جدول با سطرها و ستونها ببینید:
ستون 0 | ستون 1 | ستون 2 | |
ردیف 0 | 1 | 5 | 3 |
ردیف 1 | 4 | 7 | 9 |
دسترسی به مقدار آرایه های دو بعدی در C#
برای دسترسی به یک مقدار از یک آرایه دو بعدی، باید دو ایندکس مشخص کنید، یکی برای آرایه و دیگری برای مقدار داخل آن آرایه. بهتر است این موضوع را با تصویر جدول در نظر بگیریم؛ یکی برای ردیف و دیگری برای ستون.
به عنوان مثال، مقدار موجود در ردیف اول (0) و ستون سوم (2) آرایه numbers را دسترسی میدهد.
int[,] numbers = { {1, 5, 3}, {4, 7, 9} };
Console.WriteLine(numbers[0, 2]); // عدد سه چاپ می شود
نکته: ایندکس از [0] شروع می شود. [0] اولین مقدار، [0] دومین مقدار است و...
تغیر مقدار آرایه دو بعدی در C#
می توان با ایندکس ها مقدار آرایه دو بعدی را تغییر دهید.
مثال زیر مقدار آرایه از ردیف (0) و ستون اول (0) تغییر می دهد
int[,] numbers = { {1, 5, 3}, {4, 7, 9} };
numbers[0, 0] = 2; // مقدار را به 2 تغییر می دهد
Console.WriteLine(numbers[0, 0]); // به جای عدد 1 یعدد 2 چاپ می شود
حلقه در آرایه دو بعدی C#
میتوان به راحتی با استفاده از یک حلقه foreach به مقدار یک آرایه دو بعدی دسترسی پیدا کنید.
int[,] numbers = { {1, 5, 3}, {4, 7, 9} };
foreach (int i in numbers)
{
Console.WriteLine(i);
}
برای کار با آرایههای چند بعدی باید از حلقه for استفاده کنیم. برای هر بعد از آرایه، نیاز به یک حلقه for دارد.
همچنین می توان به جای استفاده از Length، از ()GetLength استفاده کنیم تا مشخص کنیم حلقه چند بار باید اجرا شود. این به ما کمک میکند تا به درستی اندازهی هر بعد آرایه را دریافت کنیم.
int[,] numbers = { {1, 5, 3}, {4, 7, 9} };
for (int i = 0; i < numbers.GetLength(0); i++)
{
for (int j = 0; j < numbers.GetLength(1); j++)
{
Console.WriteLine(numbers[i, j]);
}
}
خلاصه درس
در این فصل با آرایه های دو بعدی و دسترسی به مقدار آرایه دو بعدی و حله for و foreach در آرایه دو بعدی آشنا شدیم.