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

آموزش سی شارپ - آرایه ها

آرایه، مجموعه ای از عناصر به تعداد مشخص و همنوع را ذخیره می کند. از آرایه برای ذخیره مجموعه ای از داده ها استفاده می شود، اما معمولاً بهتر است آرایه را به عنوان مجموعه ای از متغیرهای هم نوع در محل های حافظه پی در پی در نظر گرفت.

به جای اعلام متغیرهای جداگانه مانند number0، number1،... و number99، شما یک متغیر آرایه مانند numbers اعلام می کنید و از numbers[0]، numbers[1] و ...، numbers[99] برای نمایش متغیرهای جداگانه استفاده می کنید. یک عنصر خاص در یک آرایه با استفاده از یک شاخص دسترسی پیدا می کند.

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

آرایه ها در C#

تعریف آرایه ها

برای تعریف یک آرایه در C#، می توانید از دستور زیر استفاده کنید −

datatype[] arrayName;

جایی که،

  • datatype برای مشخص کردن نوع عناصر در آرایه استفاده می شود.

  • [ ] رتبه آرایه را مشخص می کند. رتبه، اندازه آرایه را مشخص می کند.

  • arrayName نام آرایه را مشخص می کند.

برای مثال،

double[] balance;

مقداردهی اولیه آرایه

تعریف آرایه، آرایه را در حافظه مقداردهی اولیه نمی کند. زمانی که متغیر آرایه مقداردهی اولیه می شود، می توانید مقادیر را به آرایه اختصاص دهید.

آرایه، نوع ارجاعی است، بنابراین برای ایجاد یک نمونه از آرایه نیاز به کلیدواژه new دارید. برای مثال،

double[] balance = new double[10];

اختصاص مقدار به یک آرایه

شما می توانید با استفاده از شماره شاخص، مقدار را به عناصر آرایه اختصاص دهید، مانند −

double[] balance = new double[10];
balance[0] = 4500.0;

شما می توانید در زمان اعلام، مقدار را به آرایه اختصاص دهید، همانطور که نشان داده شده است −

double[] balance = { 2340.0, 4523.69, 3421.0};

همانطور که نشان داده شده است می توانید یک آرایه را ایجاد و مقداردهی اولیه کنید

int [] marks = new int[5]  { 99,  98, 92, 97, 95};

همانطور که نشان داده شده است می توانید اندازه آرایه را نیز حذف کنید

int [] marks = new int[]  { 99,  98, 92, 97, 95};

شما می‌توانید یک متغیر آرایه را به یک متغیر آرایه هدف دیگر کپی کنید. در چنین حالتی، هر دو متغیر هدف و منبع به یک محل حافظه اشاره می‌کنند.

int [] marks = new int[]  { 99,  98, 92, 97, 95};
int[] score = marks;

هنگامی که یک آرایه را ایجاد می کنید، کامپایلر C# به طور ضمنی هر المان آرایه را به یک مقدار پیش فرض بستگی به نوع آرایه مقداردهی اولیه می کند. به عنوان مثال، برای یک آرایه از نوع int تمام المان ها به 0 مقداردهی اولیه می شوند.

دسترسی به المان های آرایه

یک المان با فهرست کردن نام آرایه دسترسی پیدا می کند. این با قرار دادن اندیس المان در داخل پرانتز مربعی پس از نام آرایه انجام می شود. به عنوان مثال،

double salary = balance[9];

مثال زیر، مفاهیم گفته شده در مورد تعریف، اختصاص و دسترسی به آرایه‌ها را نشان می‌دهد:

using System;

namespace ArrayApplication {
   class MyArray {
      static void Main(string[] args) {
         int []  n = new int[10]; /* n is an array of 10 integers */
         int i,j;

         /* initialize elements of array n */
         for ( i = 0; i < 10; i++ ) {
            n[ i ] = i + 100;
         }
         
         /* output each array element's value */
         for (j = 0; j < 10; j++ ) {
            Console.WriteLine("Element[{0}] = {1}", j, n[j]);
         }
         Console.ReadKey();
      }
   }
}

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

Element[0] = 100
Element[1] = 101
Element[2] = 102
Element[3] = 103
Element[4] = 104
Element[5] = 105
Element[6] = 106
Element[7] = 107
Element[8] = 108
Element[9] = 109

استفاده از حلقه foreach

در مثال قبلی، برای دسترسی به هر المان آرایه از یک حلقه for استفاده کردیم. همچنین می توانید از یک عبارت foreach برای تکرار از طریق یک آرایه استفاده کنید.

using System;

namespace ArrayApplication {
   class MyArray {
      static void Main(string[] args) {
         int []  n = new int[10]; /* n is an array of 10 integers */
         
         /* initialize elements of array n */
         for ( int i = 0; i < 10; i++ ) {
            n[i] = i + 100;
         }
         
         /* output each array element's value */
         foreach (int j in n ) {
            int i = j-100;
            Console.WriteLine("Element[{0}] = {1}", i, j);
         }
         Console.ReadKey();
      }
   }
}

هنگامی که کد بالا کامپایل و اجرا می شود، نتیجه زیر را ایجاد می کند -

Element[0] = 100
Element[1] = 101
Element[2] = 102
Element[3] = 103
Element[4] = 104
Element[5] = 105
Element[6] = 106
Element[7] = 107
Element[8] = 108
Element[9] = 109

آرایه‌های سی شارپ

چند مفهوم مهم مرتبط با آرایه‌ها وجود دارد که باید برای یک برنامه‌نویس سی شارپ روشن باشد −

ردیف مفهوم و توضیحات
۱ آرایه‌های چند بعدی

زبان C# آرایه‌های چند بعدی را پشتیبانی می‌کند. ساده‌ترین فرم آرایه چند بعدی آرایه دو بعدی است.

۲ آرایه‌های تودرتو

زبان C# آرایه‌های چند بعدی را پشتیبانی می‌کند که آرایه‌هایی از آرایه‌ها هستند.

۳ انتقال آرایه به توابع

شما می‌توانید با اشاره‌گر به نام آرایه بدون اندیس، یک اشاره‌گر به آرایه را به تابع منتقل کنید.

۴ آرایه‌های پارامتری

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

۵ کلاس آرایه

این کلاس در فضای‌نام System تعریف شده است و کلاس پایه برای همه آرایه‌ها است و ویژگی‌ها و روش‌های مختلفی برای کار با آرایه‌ها فراهم می‌کند.

در درس های آینده بیشتر با این مفاهیم آشنا خواهید شد