سه شنبه ۲۷ شهريور ۱۴۰۳
Tut24 آموزش برنامه نویسی و مجله تخصصی فناوری ورود/عضویت

آموزش سی شارپ - آرایه‌های چندبعدی

سی شارپ امکان استفاده از آرایه‌های چند بعدی را فراهم می‌کند. آرایه‌های چند بعدی همچنین به عنوان آرایه مستطیلی شناخته می‌شوند. می‌توانید یک آرایه دو بعدی از رشته‌ها را به صورت زیر تعریف کنید:

string [,] names;

یا، یک آرایه سه بعدی از متغیرهای int به صورت -

int [ , , ] m;

آرایه‌های دو بعدی (Two-Dimensional Arrays)

ساده‌ترین شکل آرایه چند بعدی، آرایه دو بعدی است. آرایه دو بعدی لیستی از آرایه‌های یک بعدی است.

می‌توان یک آرایه دو بعدی را به صورت یک جدول تصور کرد، که دارای x تعداد سطر و y تعداد ستون است. آرایه دو بعدی زیر، که شامل ۳ سطر و ۴ ستون است، را مشاهده می‌کنید:

Two Dimensional Arrays in C#

بنابراین، هر عضو در آرایه a با یک نام المان مانند a[i,j] شناخته می‌شود. در اینجا، a نام آرایه است و i و j زیرنویس‌ها هستند که هر عضو را در آرایه a به صورت منحصر به فرد شناسایی می‌کنند.

مقداردهی اولیه آرایه دو بعدی (Initializing Two-Dimensional Arrays)

می‌توان آرایه‌های چند بعدی را با مشخص کردن مقادیر برای هر سطر، مقداردهی اولیه کرد. آرایه زیر، با ۳ سطر و هر سطر شامل ۴ ستون، مقداردهی اولیه شده است.

int [,] a = new int [3,4] {
   {0, 1, 2, 3} ,   /*  initializers for row indexed by 0 */
   {4, 5, 6, 7} ,   /*  initializers for row indexed by 1 */
   {8, 9, 10, 11}   /*  initializers for row indexed by 2 */
};

دسترسی به المان‌های آرایه دو بعدی (Accessing Two-Dimensional Array Elements)

برای دسترسی به عضوی در آرایه دو بعدی، از زیرنویس‌ها، به عنوان اندیس‌های سطر و ستون آرایه استفاده می‌شود. به عنوان مثال:

int val = a[2,3];

این دستور، عضو چهارم از سطح سوم آرایه را انتخاب می‌کند. می‌توانید آن را در نمودار بالا بررسی کنید. بیایید برنامه‌ای را برای کنترل یک آرایه دو بعدی بررسی کنیم −

using System;

namespace ArrayApplication {
   class MyArray {
      static void Main(string[] args) {
         /* an array with 5 rows and 2 columns*/
         int[,] a = new int[5, 2] {{0,0}, {1,2}, {2,4}, {3,6}, {4,8} };
         int i, j;
         
         /* output each array element's value */
         for (i = 0; i < 5; i++) {
            
            for (j = 0; j < 2; j++) {
               Console.WriteLine("a[{0},{1}] = {2}", i, j, a[i,j]);
            }
         }
         Console.ReadKey();
      }
   }
}

وقتی کد بالا کامپایل و اجرا می‌شود، نتیجه زیر را تولید می‌کند −

a[0,0]: 0
a[0,1]: 0
a[1,0]: 1
a[1,1]: 2
a[2,0]: 2
a[2,1]: 4
a[3,0]: 3
a[3,1]: 6
a[4,0]: 4
a[4,1]: 8