در مثال زیر ، با نحوه کار کردن با آرایه ها آشنا خواهید شد :
using System;
class Array
{
public static void Main()
{
int[] myInts = { 5, 10, 15 };
bool[][] myBools = new bool[2][];
myBools[0] = new bool[2];
myBools[1] = new bool[1];
double[,] myDoubles = new double[2, 2];
string[] myStrings = new string[3];
Console.WriteLine("myInts[0]: {0}, myInts[1]: {1}, myInts[2]: {2}",
myInts[0], myInts[1], myInts[2]);
myBools[0][0] = true;
myBools[0][1] = false;
myBools[1][0] = true;
Console.WriteLine("myBools[0][0]: {0}, myBools[1][0]: {1}",
myBools[0][0],
myBools[1][0]);
myDoubles[0, 0] = 3.147;
myDoubles[0, 1] = 7.157;
myDoubles[1, 1] = 2.117;
myDoubles[1, 0] = 56.00138917;
Console.WriteLine("myDoubles[0, 0]: {0}, myDoubles[1, 0]: {1}",
myDoubles[0, 0], myDoubles[1, 0]);
myStrings[0] = "Joe";
myStrings[1] = "Matt";
myStrings[2] = "Robert";
Console.WriteLine("myStrings[0]: {0}, myStrings[1]: {1},
myStrings[2]: {2}", myStrings[0], myStrings[1], myStrings[2]);
}
}
مثال 1-5-1
خروجي مثال 1-5-1 بصورت زير است :
myInts[0]: 5, myInts[1]: 10, myInts[2]: 15
myBools[0][0]: True, myBools[1][0]: True
myDoubles[0, 0]: 3.147, myDoubles[1, 0]: 56.00138917
myStrings[0]: Joe, myStrings[1]: Matt, myStrings[2]: Robert
در اين مثال انواع مختلفي از آرايهها اعلان شدهاند. در ابتدا يك آرايه تك بعدي، سپس آرايهاي دندانهدار و در نهايت نيز يك آرايه دو بعدي در اين مثال اعلان شدهاند.
اولين اعلان در اين برنامه مربوط به اعلان آرايه تك بعدي myInts ميباشد كه از نوع int بوده و داراي 3 عضو ميباشد كه تعداد اين اعضا با اعلان چند مقدار در داخل { } معين شده است. همانطور كه از اين اعلان دريافت ميشود، میدانیم که آرايه تك بعدي بصورت زير تعريف ميشود :
type[] arrayName;
كه در آن type نوع آرايه و arrayName نام آرايه ايست كه تعريف مينمائيم.
اما در ابتدا گفته شد كه به هنگام اعلان آرايهها اندازه آنها نيز بايد مشخص شود. براي تعيين اندازه آرايه، يعني تعدا عناصري كه آرايه در خود جاي ميدهد، ميتوان به چند روش عمل نمود. اولين و سادهترين روش كه در اين مثال نيز آورده شده است، تخصيص مقاديري به آرايه در داخل يك زوج { } است. بسته به نوع آرايه، تعداد عناصري كه داخل اين زوج { } قرار ميگيرند، تعداد عناصر آرايه ميباشند و مقادير عناصر آرايه نيز همان مقاديري است كه داخل { } قرار گرفته است. به عنوان مثال در مثال 4، اولين آرايه ما داراي 3 عنصر است كه مقادير آنها به ترتيب برابر با 5، 10 و 15 ميباشد.
روش ديگر جهت تعيين اندازه آرايه استفاده از روش تعريف كامل آرايه است كه به فرم كلي زير ميباشد.
type[] arrayName = new type[n];
كه در اين تعريف، استفاده از كلمه كليدي new باعث ايجاد نمونهاي جديد از نوع مورد نظر، ميشود. n نيز تعداد عناصر آرايه است كه ميخواهيم آنرا توليد نماييم. در اين حالت بايد توجه داشت كه آرايهاي تهي را توليد نمودهايم و هيچ عنصري را در آرايه جاي ندادهايم و در برنامه بايد آرايه را مقدار دهي نماييم. به مثال زير توجه كنيد.
int[] myArray = new int[15];
اين مثال آرايهاي تك بعدي از نوع int را با اندازه 15 عنصر توليد مينمايد. يعني اين آرايه قادر است تا 15 عنصر از نوع int را در خود ذخيره نمايد.
مثال :
برنامه ای بنویسید که تعداد دانشجویان را گرفته و برای هر دانشجو ، تعداد درسها را گرفته و نمره هر درس را در آرایه ذخیره نماید ، و سپس معدل وی را چاپ نماید.
Console.WriteLine("Please enter The number of Students");
int StdCount = int.Parse(Console.ReadLine());
float[][] strLesson = new float[StdCount][];
for (int i = 0; i < StdCount; i++)
{
Console.WriteLine("Please Enter number of Lessons for Student Numnber " + (i+1).ToString());
int stdlesson = int.Parse(Console.ReadLine());
strLesson[i] = new float[stdlesson];
float sum = 0;
for(int j=0; j<stdlesson;j++)
{
Console.Write("Lesson Number {0} =",(j+1).ToString());
strLesson[i][j] = int.Parse(Console.ReadLine());
sum += strLesson[i][j];
}
Console.WriteLine("The average of student number {0} is
{1}",i+1,sum/stdlesson);
}
مثال 2-5-1
آرایه ای از رشته ها
نكته ديگري كه بايد در مورد تعريف آرايهها متذكر شویم در مورد آرايههائيست كه از نوع string تعريف ميشوند. کسانی كه با زبان C كار كردهاند حتماً ميدانند كه آرايهاي از نوع رشتهاي در C وجود ندارد و براي نگهداري چندين رشته در يك آرايه بايد از آرايه دو بعدي استفاده كرد. در C# اين قابليت فراهم شده تا با استفاده از يك آرايه تك بعدي بتوان چندين رشته را ذخيره نمود بدين صورت كه هر يك از عناصر آرايه نك بعدي محلي براي ذخيرهسازي يك رشته است و همانند زبان C نياز به پردازشهاي گاه پيچيده بر روي آرايههاي چند بعدي بمنظور كار با رشتهها، وجود ندارد. در زبانهايي مانند C، در صورتيكه ميخواستيد چندين رشته را در آرايهاي ذخيره كنيد تا بتوانيد با انديس به آنها دسترسي داشته باشيد، مجبور به تعريف يك آرايه دو بعدي بوديد كه با استفاده از تنها انديس اول آرايه ميتوآن استيد به عناصر رشتهاي آرايه دسترسي پيدا كنيد، اما در C# تنها با استفاده از يك آرايه تك بعدي ميتوان همان كار را انجام داد.
string[] stringArray = {"C# language", "Very Best"}
…..
Console.WriteLine("{0}",stringArray[0]);
…..
مثال 3-5-1
همانطور كه در اين مثال ملاحظه ميكنيد، آرايهاي از نوع رشته تعريف شده و دو عنصر به آن تخصيص داده شده است و در جايي در متن برنامه با استفاده از انديس از اولين عنصر اين آرايه براي نمايش در خروجي استفاده گرديده است. خروجي اين برنامه به شكل زير است :
C# language