C# – آرایههای چندبعدی (Multidimensional Arrays)
آرایههای چندبعدی در C#
در فصلهای قبلی با آرایههای تکبعدی آشنا شدید. این آرایهها برای ذخیره مجموعهای از دادهها به صورت خطی بسیار مفید هستند. اما اگر بخواهید دادهها را به صورت جدولی با ردیفها و ستونها ذخیره کنید، باید با آرایههای چندبعدی آشنا شوید.
آرایههای چندبعدی اساساً آرایهای از آرایهها هستند. آرایهها میتوانند هر تعداد بعد داشته باشند، اما رایجترین آنها آرایههای دوبعدی (2D) هستند.
آرایههای دوبعدی
برای ایجاد یک آرایه دوبعدی، هر آرایه را در مجموعهای از براکتهای {} قرار دهید و یک کاما (,) را درون براکتهای [] وارد کنید:
مثال:
int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
توجه: کامای تنها [,] نشاندهنده این است که آرایه دوبعدی است. آرایه سهبعدی دو کاما دارد: int[,,]
.
در این مثال، numbers
آرایهای است که دو آرایه به عنوان عناصر آن وجود دارد. اولین آرایه حاوی سه عنصر: 1، 4 و 2 است، در حالی که دومین آرایه شامل 3، 6 و 8 است. برای تجسم بهتر، تصور کنید که آرایه به صورت یک جدول با ردیفها و ستونها است.
دسترسی به عناصر آرایه دوبعدی
برای دسترسی به یک عنصر از آرایه دوبعدی، باید دو اندیس را مشخص کنید: یکی برای آرایه و دیگری برای عنصر درون آن آرایه. یا بهتر است بگویید، یکی برای ردیف و دیگری برای ستون.
مثال:
int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
Console.WriteLine(numbers[0, 2]); // چاپ مقدار 2
به یاد داشته باشید که اندیسهای آرایه از 0 شروع میشوند: [0] اولین عنصر است و [1] دومین عنصر است و غیره.
تغییر عناصر آرایه دوبعدی
شما میتوانید مقدار یک عنصر را نیز تغییر دهید.
مثال:
int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
numbers[0, 0] = 5; // تغییر مقدار به 5
Console.WriteLine(numbers[0, 0]); // حالا مقدار 5 به جای 1 چاپ میشود
پیمایش در آرایه دوبعدی
شما میتوانید به راحتی از طریق یک حلقه foreach یا for به عناصر آرایه دوبعدی دسترسی پیدا کنید:
مثال با استفاده از foreach
:
int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
foreach (int i in numbers)
{
Console.WriteLine(i); // چاپ هر عنصر از آرایه
}
مثال با استفاده از for
:
برای آرایههای چندبعدی، باید یک حلقه برای هر بعد از آرایه داشته باشید. همچنین باید از GetLength()
به جای Length
برای مشخص کردن تعداد دفعاتی که حلقه باید اجرا شود، استفاده کنید:
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]); // چاپ هر عنصر از آرایه
}
}
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام