آرایه ها در سی شارپ
فرض کنید که می خواهید صد مقدار مختلف را ذخیره کنید. در این صورت تعریف صد متغیر کار بسیار سختی خواهد بود. برای حل این مشکل سی شارپ آرایه ها را معرفی کرد. یک آرایه یک نوع داده ای خاص است که می تواند تعداد مشخصی مقدار را در خود به صورت دنباله ای از مقادیر ذخیره کند. شکل زیر نحوه ذخیره مقادیر در یک آرایه را نشان می دهد :
همانطور که در شکل بالا می بینید index یک عدد بوده که از مقدار صفر آغاز میشود. شما می توانید تعداد مشخصی مقدار را در یک آرایه ذخیره کنید.
یک آرایه میتواند با استفاده از یک نوع داده که به دنبال آن [] می آید، تعریف شود :
int[] intArray; // can store int values
bool[] boolArray; // can store boolean values
string[] stringArray; // can store string values
double[] doubleArray; // can store double values
byte[] byteArray; // can store byte values
Student[] customClassArray; // can store instances of Student class
مقدار دهی اولیه آرایه
یک آرایه را میتوان در هنگام تعریف مقداردهی اولیه نیز کرد. این کار با استفاده از کلمه کلیدی new امکان پذیر است. نمونه مثال زیر سه روش تعریف و مقدار دهی آرایه ها را نشان میدهد :
// defining array with size 5. add values later on
int[] intArray1 = new int[5];
// defining array with size 5 and adding values at the same time
int[] intArray2 = new int[5]{1, 2, 3, 4, 5};
// defining array with 5 elements which indicates the size of an array
int[] intArray3 = {1, 2, 3, 4, 5};
در نمونه مثال بالا اولین عبارت ابتدا یک آرایه را با نوع داده ای int (که می تواند ۵ مقدار صحیح را در خود ذخیره کند) تعریف و مقداردهی کرده است. عبارت دوم نیز همانند عبارت اول عمل تعریف را انجام داده و سپس کار مقدار دهی اولیه را با مقادیر انجام داده است.
عبارت سوم بدون اینکه تعداد خانه های آرایه را مشخص کند، کار مقداردهی را انجام داده است. در این حالت اندازه آرایه به صورت اتوماتیک از تعداد مقادیر برداشته خواهد شد. در صورتی که عمل مقدار دهی را بدون مشخص کردن اندازه آرایه (مثال زیر) انجام دهیم با خطای کامپایلری روبرو می شویم. نمونه مثال زیر در هنگام کامپایل باعث خطا خواهد شد :
int[] intArray = new int[]; // compiler error: must give size of an array
دسترسی به عناصر آرایه
همانطور که گفته شد مقادیر میتوانند در زمان تعریف آرایه به آن انتساب داده شود. با این حال مقادیر میتوانند به صورت تصادفی با استفاده از مقادیر index به خانه های آرایه انتساب داده شوند :
int[] intArray = new int[5];
intArray[0] = 10;
intArray[1] = 20;
intArray[2] = 30;
intArray[3] = 40;
intArray[4] = 50;
به همین روش می توان مقادیر خانه های مشخصی از آرایه را واکشی کرد :
intArray[0]; //returns 10
intArray[2]; //returns 30
می توان با استفاده از یک حلقه for تمام مقادیر یک آرایه را در صفحه کنسول چاپ کرد :
int[] intArray = new int[5]{10, 20, 30, 40, 50 };
for(int i = 0; i < intArray.Length; i++)
Console.WriteLine(intArray[i]);
خروجی نمونه مثال بالا به شکل زیر خواهد بود :
۱۰
۲۰
۳۰
۴۰
۵۰