با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش #c ، را دنبال می کنند. در بخش قبلی با شی StringBuilder و کاربرد آن در زبان #C آشنا شدید. در این بخش قصد داریم در رابطه با آرایه ها در زبان #C و نحوه دسترسی به عناصر آرایه در #C و انواع و کاربرد آنها توضیح دهیم.
تا الآن گفتیم که یک متغیر می تواند تنها یک مقدار خطی را داشته باشد، مثلا int x = 1 ؛ فقط یک مقدار خطی را می توان به متغیر x اختصاص داد. فرض کنید شما می خواهید ۱۰۰ مقدار مختلف را ذخیره کنید آیا این منطقی است که ۱۰۰ متغیر مختلف را ایجاد کنید؟
برای غلبه بر این مشکل، #آرایه ها را معرفی کرد.
آرایه یک نوع خاصی از داده است که می تواند تعدادی مقدار ثابت را به طور پیوسته با استفاده از نحوی خاص ذخیره کند.
تصویر زیر نشان می دهد که چگونه یک آرایه مقدارهای پیوسته را ذخیره می کند.
همانطور که در شکل بالا می بینید،اندیس (شماره) یک عدد از ۰ شروع می شود که مقدار آن را ذخیره می کند. شما می توانید یک مقدار ثابت در آرایه ذخیره کنید. اندیس آرایه یکی یکی تا اندیس پایانی افزایش می یابد.
یک آرایه می تواند با استفاده از نام یک نوع که بعد از آن از [] استفاده شده باشد، تعریف شود.
1 2 3 4 5 6 7 8 9 10 11 | 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 یک بار اعلام و مقداردهی اولیه شود. مثال زیر روش تعریف و تعیین مقدار اولیه یک آرایه را نشان می دهد.
1 2 3 4 5 6 7 8 | // 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 و با تعیین مقادیر تعریف می شود. در اینجا، اندازه آرایه به تعداد مقادیر بستگی دارد و به طور خودکار تعیین می شود.
نکته :تعریف و مقداردهی اولیه با استفاده از کلمه کلیدی new بدون تعیین اندازه (سایز) آرایه امکان پذیر نمی باشد. به عنوان مثال، کد زیر خطای کامپایل را ارائه می دهد.
1 | int[] intArray = new int[]; // compiler error: must give size of an array |
آرایه ها می توانند پس از تعریف شدن بدون مقدر باشند. لازم نیست که همزمان با استفاده از کلید واژه new نعریف و مقداردهی اولیه شوند . مثال زیر را در نظر بگیرید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | string[] strArray1, strArray2; strArray1 = new string[5]{ "1st Element", "2nd Element", "3rd Element", "4th Element", "5th Element" }; strArray2 = new string[]{ "1st Element", "2nd Element", "3rd Element", "4th Element", "5th Element" }; |
نکته : در صورت تعریف آرایه بدون مقدادهی اولیه، حتما باید از کلمه کلیدی new استفاده شود . برای مثال تعریف آرایه به شکل زیر اشتباع است:
1 2 3 | string[] strArray; strArray = {"1st Element","2nd Element","3rd Element","4th Element" }; |
همانطور که در بالا نشان داده شد، مقادیر را می توان در زمان تعریف آرایه تعیین کرد . با این حال، میتوان مقادیر به صورت زیر نیز وارد کرد.
1 2 3 4 5 6 7 8 9 10 11 | int[] intArray = new int[5]; intArray[0] = 10; intArray[1] = 20; intArray[2] = 30; intArray[3] = 40; intArray[4] = 50; |
می توان مقادیر را در یک بصورت زیر بازیابی کرد :
1 2 3 | intArray[0]; //returns 10 intArray[2]; //returns 30 |
به همین ترتیب، شما می توانید مقادیر را با استفاده از شماره اندیس در آرایه بازیابی کنید، همانطور که در زیر آمده است:
1 2 3 4 | int[] intArray = new int[5]{10, 20, 30, 40, 50 }; for(int i = 0; i < intArray.Length; i++) Console.WriteLine(intArray[i]); |
خروجی :
1 2 3 4 5 | 10 20 30 40 50 |
توضیحات | نام متد |
تعداد عناصر آرایه را در ابعاد مشخثص شده را برمی گرداند. | GetLength(int dimension) |
پایین ترین (اولین) عنصر آرایه را نشان می دهد. | GetLowerBound(int dimension) |
بالاترین (آخرین) عنصر آرایه را نشان می دهد. | GetUpperBound(int dimension) |
مقدار یک عنصر از آرایه را برمی گرداند | GetValue(int index) |
توضیحات | پراپرتی |
تعداد عناصر کل آرایه را برمی گرداند | Length |
NET. یک کلاس انتزاعی به نام Array را به عنوان کلاس پایه برای تمام آرایه ها فراهم می کند. این کلاس شامل متدهایی ایستا برای ایجاد، دستکاری، جستجو و مرتب سازی آرایه ها می باشد.
برای مثال، از متد Array.Sort برای مرتب سازی مقادیر استفاده می کنیم:
1 2 3 4 5 | int[] intArr = new int[5]{ 2, 4, 1, 3, 5}; Array.Sort(intArr); Array.Reverse(intArr); |
شما می توانید آرایه ای را ایجاد کنید که از اندیس ۱ شروع شود (به طور پیش فرض ۰ شروع می شود) که در مثال زیر نشان داده شده است:
1 2 3 4 5 6 7 8 9 10 | Array array = Array.CreateInstance(typeof(int),new int[1]{5},new int[1]{1}); array.SetValue(1, 1); array.SetValue(2, 2); array.SetValue(3, 3); array.SetValue(4, 4); array.SetValue(5, 5); for (int i = 1; i <= array.Length; i++) Console.WriteLine("Array value {0} at position {1}", array.GetValue(i), i) |
خروجی :
1 2 3 4 5 | Array value 1 at position 1 Array value 2 at position 2 Array value 3 at position 3 Array value 4 at position 4 Array value 5 at position 5 |
در این قسمت با آرایه ها در #C آشنا شدید.
در قسمت بعد قصد داریم شما را با آرایه های چند بعدی آشنا کنیم.