مشخصات مقاله
-
4153
-
5.0
-
88734
-
2
-
1
آموزش کار با آرایه ها Arrays در زبان C#
وقتی وارد دنیای برنامهنویسی میشیم، یکی از مهمترین مهارتهایی که باید یاد بگیریم، کار با دادهها و مدیریت درست اطلاعات در برنامههاست. تقریباً بیشتر نرمافزارهای واقعی به نوعی با دادهها سروکار دارن؛ یعنی باید اطلاعاتی رو ذخیره کنیم، روی اونها پردازش انجام بدیم و هر وقت لازم بود بهشون دسترسی داشته باشیم.
آرایهها یا Arrays یکی از سادهترین و در عین حال مهمترین ساختارهای داده در زبان C# هستن. با کمک آرایهها میتونیم چند مقدار مشابه رو داخل یک مجموعه قرار بدیم و راحتتر مدیریتشون کنیم. توی این مقاله با مفهوم آرایهها، نحوه تعریف و مقداردهی، دسترسی به اعضای آرایه و روش کار با اونها در C# آشنا میشیم.
آموزش کار با آرایه ها Arrays در زبان C# :
آرایه ها Arrays مجموعه ای از آیتم ها مثل متن String هستن. میتونید از آرایه ها برای قرار دادن چندین متغیر همسان در یک گروه و انجام کارهایی مثل مرتب سازی یا sorting روی اونها استفاده کنید.
آرایه ها در C# تقریباً شبیه متغیرها تعریف میشن؛ با این تفاوت که یک [ ] در مقابل نوع داده ای آرایه قرار میگیره. ساختار کلی تعریف یک آرایه در C# به صورت زیره:
string[] names;
برای استفاده از یک آرایه، اول باید اون رو تعریف و مقداردهی کنید. به صورت زیر:
string[] names = new string[2];
در کد بالا، عدد 2 سایز آرایه رو مشخص میکنه. سایز آرایه یعنی تعداد اعضایی که میتونید داخل آرایه قرار بدید. قرار دادن آیتمها در یک Arrays هم کار سختی نیست. به صورت زیر:
names[0] = "John Doe";
اما چرا در تعریف اولین عضو آرایه از عدد 0 استفاده کردیم؟ چون در C#، مثل خیلی از زبانهای برنامهنویسی دیگه، شمارش اعضا از 0 شروع میشه، نه 1. بنابراین اولین عضو آرایه اندیس 0 داره، عضو دوم اندیس 1 و به همین ترتیب.
باید به تعداد اعضای یک آرایه دقت کنید، چون اگر عضوی بیشتر از تعداد تعیینشده برای آرایه تعریف کنید، برنامه با خطا مواجه میشه. مثلاً وقتی یک آرایه با 2 عضو تعریف میکنید، اعضای اون اندیسهای 0 و 1 رو دارن و عضوی با اندیس 2 وجود نداره. این یکی از اشتباهات رایج هنگام کار با آرایههاست.
در درسهای قبلتر، با ساختارهای تکرار یا حلقهها در C# آشنا شدید. این ساختارها برای کار با آرایهها خیلی مناسب هستن.
یکی از رایجترین راهها برای استخراج اطلاعات از یک آرایه Arrays، استفاده از حلقهها یا loops هست. در هر بار اجرای حلقه، یکی از اعضای آرایه استخراج میشه و میتونید عملیات موردنظرتون رو روی اون انجام بدید. در مثال عملی زیر، نحوه خواندن و کار با یک آرایه رو به وسیله حلقه loop میبینید:
using System;
using System.Collections;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string[] names = new string[2];
names[0] = "John Doe";
names[1] = "Jane Doe";
foreach(string s in names)
Console.WriteLine(s);
Console.ReadLine();
}
}
}
در مثال بالا از حلقه foreach استفاده کردیم که یکی از سادهترین انواع حلقه برای کار با آرایههاست. البته میتونید از انواع دیگه حلقهها در C# هم استفاده کنید؛ مثلاً حلقه for که با کمک اون میشه اعضای یک آرایه رو شمرد و به تعداد اعضای اون، پیامهایی رو در خروجی چاپ کرد:
for(int i = 0; i < names.Length; i++)
Console.WriteLine("Item number " + i + ": " + names[i]);
کارکرد کد بالا خیلی ساده است. ما از اندازه طول آرایه (Arrays Length) استفاده کردیم تا مشخص کنیم حلقه باید چند بار تکرار بشه. همچنین از شمارنده Counter(i) کمک گرفتیم تا بفهمیم در هر لحظه در کجای پردازش آرایه قرار داریم و بتونیم هرکدوم از اعضای اون رو بیرون بکشیم.
همونطور که هنگام تعریف و مقداردهی آرایه از یک عدد به نام اندیس یا indexer استفاده کردیم، از همین عدد میتونیم برای خواندن و بیرون کشیدن اعضای آرایه هم استفاده کنیم.
در بخش قبل گفتیم که میشه اعضای یک آرایه رو مرتب یا sort کرد. این کار خیلی ساده است. کلاس Array Class چندین متد (method) مختلف داره که میتونید برای کار با آرایهها از اونها استفاده کنید.
در مثال زیر به جای string یا متن از اعداد استفاده کردیم تا منظور مشخصی رو نشون بدیم. البته به همین سادگی میتونید اعضای یک آرایه رو از نوع string هم تعریف کنید. یک روش سادهتر دیگه هم برای پر کردن و مقداردهی اعضای آرایه وجود داره؛ مخصوصاً وقتی اعضای آرایه مشخص و مرتب هستن. به صورت زیر:
int[] numbers = new int[5] { 4, 3, 8, 0, 5 };
با یک خط کد، یک آرایه با 5 عضو ایجاد کردیم و پنج عدد یا integer رو به عنوان اعضای اون قرار دادیم.
پر کردن اعضای آرایه به این روش یک مزیت دیگه هم داره. در این حالت، کامپایلر تعداد اعضای تعریفشده برای آرایه رو با تعداد آیتمهایی که وارد کردید بررسی میکنه. اگر تعداد آیتمها بیشتر از تعداد اعضای آرایه باشه، خطا ایجاد میشه.
در واقع کد بالا رو میشه به شکل خلاصهتر هم نوشت، ولی در این حالت بررسی خودکار کامپایلر رو از دست میدیم:
int[] numbers = { 4, 3, 8, 0, 5 };
اما بیایید نحوه مرتب کردن یا sort یک آرایه رو با هم بررسی کنیم. مثال زیر رو با دقت ببینید:
using System;
using System.Collections;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int[] numbers = { 4, 3, 8, 0, 5 };
Array.Sort(numbers);
foreach(int i in numbers)
Console.WriteLine(i);
Console.ReadLine();
}
}
}
تنها چیز جدیدی که در کد بالا میبینید، دستور Array.Sort هست. این متد میتونه پارامترهای مختلفی رو به عنوان ورودی دریافت کنه و بر اساس اونها نوع آرایه رو مرتب کنه؛ مثلاً به صورت نزولی، صعودی و یا ... .
کلاس Array Class متدهای مختلف دیگهای هم برای کار با آرایهها داره؛ مثلاً متد Reverse() که با کمک اون میشه ترتیب اعضای یک آرایه رو معکوس کرد.
برای درک بهتر، به لیست کامل متدهای آرایه ها در C# بروید.
آرایههایی که در مثالهای این درس استفاده کردیم، همه تکبعدی هستن، ولی آرایهها در C# میتونن 2 یا 3 بعدی هم باشن. به این آرایهها آرایههای تو در تو یا ماتریس هم میگن.
آرایههای چندبعدی در C# به 2 دسته تقسیم میشن:
- آرایههای مستطیلی یا Rectangular Array.
- آرایههای نامنظم یا Jagged Array.
تفاوت این دو نوع آرایه در اینه که هر بُعد در آرایههای مستطیلی باید اندازه یکسانی داشته باشه؛ مثلاً یک آرایه 4×4.
اما هر بُعد در Jagged Array میتونه سایز متفاوتی داشته باشه. بحث آرایههای چندبعدی گسترده است و بررسی کامل اون خارج از حوصله این آموزش قرار میگیره.
مسیر یادگیری C# را اصولی شروع کنید
اگر اینجا با مفهوم آرایهها آشنا شدید، قدم بعدی اینه که مفاهیم پایه دیگه C# رو هم به شکل اصولی یاد بگیرید. مفاهیمی مثل متغیرها، حلقهها و ساختارهای داده، بخش مهمی از مسیر یادگیری C# هستن و پایهای برای رفتن سراغ مباحث پیشرفتهتر محسوب میشن.
در دوره آموزش C# آموزشگاه تحلیل داده، مباحث پایه تا مفاهیم کاربردی C# به صورت پروژهمحور آموزش داده میشه تا درک بهتری از ساختار این زبان پیدا کنید و قدم بعدی رو در مسیر برنامهنویسی حرفهای بردارید.