آموزش آرایه ها در سی شارپ – راهنمای جامع به زبان ساده
آیا تا به حال به این فکر کردهاید که چگونه میتوان اطلاعات را به صورت منظم و ساختار یافته در برنامههای خود ذخیره و مدیریت کنید؟ خب، جواب ساده است: آرایهها! امروز قصد داریم به شما آموزش دهیم که چگونه از آرایه ها در سی شارپ استفاده کنید و به این ترتیب دنیای جدیدی از امکانات را در برنامهنویسی به روی شما باز کنیم.
آرایه چیست؟
آرایهها مجموعهای از دادهها هستند که میتوانند از یک نوع باشند. به عبارت سادهتر، آرایهها به شما اجازه میدهند تا چندین متغیر را تحت یک نام ذخیره کنید و از آنها به طور منظم استفاده کنید. این ویژگی میتواند در مدیریت دادهها بسیار مفید باشد.
آرایهها به شما این امکان را میدهند که دادهها را به صورت منظم و کارآمد ذخیره کنید. تصور کنید که میخواهید نمرات یک کلاس درس را ذخیره کنید. به جای اینکه ۳۰ متغیر مختلف برای هر دانشآموز تعریف کنید، میتوانید یک آرایه از نمرات ایجاد کنید و به راحتی به هر نمره دسترسی داشته باشید.
سینتکس آرایه ها در سی شارپ
برای ایجاد یک آرایه در سی شارپ، میتوانید از سینتسک زیر استفاده کنید:
int[] numbers = new int[5];
مقداردهی به آرایه در C#:
برای مقداردهی به آرایه میتوانید از کد زیر استفاده کنید:
numbers[0] = 10; numbers[1] = 20; numbers[2] = 30; numbers[3] = 40; numbers[4] = 50;
دسترسی به عناصر آرایه:
برای دسترسی به عناصر آرایه، کافی است از ایندکس استفاده کنید:
int firstNumber = numbers[0];
انواع آرایه ها در سی شارپ
در سی شارپ چندین نوع آرایه موجود هستند که هرکدام کاربردهای مخصوص به خودشان را دارند.
در ادامه این مطلب انواع آرایه سی شارپ مورد بررسی قرار گرفته و برای فهم بهتر برای هرکدام مثالی ارائه شده است.
آرایه های تک بعدی در سی شارپ
آرایههای تک بعدی سادهترین نوع آرایهها هستند. آنها به شما اجازه میدهند تا یک مجموعه از دادهها را به صورت خطی ذخیره کنید. آرایه تک بعدی لیستی خطی از عناصر است. بیایید مثالی ساده از یک آرایه تک بعدی که نامهای چند دانشآموز را ذخیره میکند، ارائه دهیم.
using System; class Program { static void Main() { // ایجاد آرایه تک بعدی از نامهای دانشآموزان string[] studentNames = { "Ali", "Sara", "Reza", "Neda" }; // چاپ تمام نامهای دانشآموزان Console.WriteLine("نامهای دانشآموزان:"); foreach (string name in studentNames) { Console.WriteLine(name); } } }
شرح کد:
- ایجاد آرایه تک بعدی: یک آرایه تک بعدی به نام studentNames ایجاد کرده و چهار نام دانشآموز را در آن ذخیره میکنیم.
string[] studentNames = { "Ali", "Sara", "Reza", "Neda" };
- چاپ عناصر آرایه: با استفاده از حلقه foreach، تمامی عناصر آرایه را چاپ میکنیم.
foreach (string name in studentNames) { Console.WriteLine(name);
پیشنهاد مطالعه: آموزش RabbitMQ در سی شارپ: راهنمای کامل و کاربردی
آرایه های چند بعدی در C#
آرایههای چند بعدی به شما اجازه میدهند تا دادهها را در قالب ماتریس یا جدول ذخیره کنید. آرایه چند بعدی به صورت یک ماتریس یا جدول ذخیره میشود. بیایید مثالی ساده از یک آرایه دو بعدی که نمرات دانشآموزان در دروس مختلف را ذخیره میکند، ارائه دهیم.
using System; class Program { static void Main() { // ایجاد آرایه دو بعدی از نمرات دانشآموزان int[,] studentGrades = { { 85, 90, 78 }, { 88, 92, 80 }, { 75, 85, 82 } }; // چاپ نمرات دانشآموزان Console.WriteLine("نمرات دانشآموزان:"); for (int i = 0; i < studentGrades.GetLength(0); i++) { for (int j = 0; j < studentGrades.GetLength(1); j++) { Console.Write(studentGrades[i, j] + " "); } Console.WriteLine(); } } }
شرح کد:
- ایجاد آرایه دو بعدی: یک آرایه دو بعدی به نام studentGrades ایجاد کرده و نمرات سه دانشآموز را در سه درس مختلف ذخیره میکنیم.
int[,] studentGrades = { { 85, 90, 78 }, { 88, 92, 80 }, { 75, 85, 82 } };
- چاپ عناصر آرایه: با استفاده از دو حلقه for تو در تو، تمامی عناصر آرایه را چاپ میکنیم.
for (int i = 0; i < studentGrades.GetLength(0); i++) { for (int j = 0; j < studentGrades.GetLength(1); j++) { Console.Write(studentGrades[i, j] + " "); } Console.WriteLine(); }
آرایه های دندانهدار در سی شارپ
آرایههای دندانهدار (Jagged Arrays) آرایههایی هستند که هر عنصر آنها خود یک آرایه است. این آرایهها برای ذخیره دادههایی با اندازههای مختلف بسیار مفید هستند. آرایه دندانهدار مجموعهای از آرایهها است که هر کدام میتوانند طول متفاوتی داشته باشند. بیایید مثالی ساده از یک آرایه دندانهدار که نمرات دانشآموزان در امتحانات مختلف را ذخیره میکند، ارائه دهیم.
using System; class Program { static void Main() { // ایجاد آرایه دندانهدار از نمرات دانشآموزان int[][] jaggedGrades = new int[3][]; jaggedGrades[0] = new int[] { 85, 90 }; jaggedGrades[1] = new int[] { 78, 88, 92 }; jaggedGrades[2] = new int[] { 80, 75, 85, 82 }; // چاپ نمرات دانشآموزان Console.WriteLine("نمرات دانشآموزان:"); for (int i = 0; i < jaggedGrades.Length; i++) { for (int j = 0; j < jaggedGrades[i].Length; j++) { Console.Write(jaggedGrades[i][j] + " "); } Console.WriteLine(); } } }
شرح کد:
- ایجاد آرایه دندانهدار: یک آرایه دندانهدار به نام jaggedGrades ایجاد کرده و نمرات سه دانشآموز را در امتحانات مختلف ذخیره میکنیم. توجه کنید که هر آرایه داخلی میتواند طول متفاوتی داشته باشد.
int[][] jaggedGrades = new int[3][]; jaggedGrades[0] = new int[] { 85, 90 }; jaggedGrades[1] = new int[] { 78, 88, 92 }; jaggedGrades[2] = new int[] { 80, 75, 85, 82 };
- چاپ عناصر آرایه: با استفاده از دو حلقه for تو در تو، تمامی عناصر آرایه دندانهدار را چاپ میکنیم.
for (int i = 0; i < jaggedGrades.Length; i++) { for (int j = 0; j < jaggedGrades[i].Length; j++) { Console.Write(jaggedGrades[i][j] + " "); } Console.WriteLine(); }
مثالی ساده از آرایه در سی شارپ
بیایید یک مثال عملی از آرایهها در سی شارپ ببینیم. فرض کنید میخواهیم نمرات یک کلاس را جمع بزنیم؛ برای این هدف باید به صورت زیر عمل کنیم:
int[] grades = { 90, 85, 70, 80, 95 }; int sum = 0; for (int i = 0; i < grades.Length; i++) { sum += grades[i]; } Console.WriteLine("مجموع نمرات: " + sum);
کار با متدهای آرایه در سی شارپ
آرایه ها در سی شارپ دارای مجموعهای از متدهای داخلی هستند که عملیات مختلفی را بر روی آرایهها انجام میدهند. در این بخش، برخی از مهمترین این متدها را بررسی کرده و برای هر کدام مثالی ارائه میکنیم.
۱. متد Sort
متد Sort برای مرتبسازی عناصر آرایه به کار میرود.
مثال:
int[] numbers = { 5, 1, 4, 3, 2 }; Array.Sort(numbers); foreach (int number in numbers) { Console.WriteLine(number); // خروجی: 1, 2, 3, 4, 5 }
۲. متد Reverse
متد Reverse برای برعکس کردن ترتیب عناصر آرایه استفاده میشود.
مثال:
int[] numbers = { 1, 2, 3, 4, 5 }; Array.Reverse(numbers); foreach (int number in numbers) { Console.WriteLine(number); // خروجی: 5, 4, 3, 2, 1 }
۳. متد IndexOf
متد IndexOf برای پیدا کردن ایندکس اولین رخداد یک مقدار خاص در آرایه به کار میرود.
مثال:
int[] numbers = { 1, 2, 3, 4, 5 }; int index = Array.IndexOf(numbers, 3); Console.WriteLine(index); // خروجی: 2
۴. متد LastIndexOf
متد LastIndexOf برای پیدا کردن ایندکس آخرین رخداد یک مقدار خاص در آرایه به کار میرود.
مثال:
int[] numbers = { 1, 2, 3, 4, 3, 5 }; int index = Array.LastIndexOf(numbers, 3); Console.WriteLine(index); // خروجی: 4
۵. متد Clear
متد Clear برای پاک کردن تمام عناصر یک آرایه به کار میرود.
مثال:
int[] numbers = { 1, 2, 3, 4, 5 }; Array.Clear(numbers, 0, numbers.Length); foreach (int number in numbers) { Console.WriteLine(number); // خروجی: 0, 0, 0, 0, 0 }
۶. متد Copy
متد Copy برای کپی کردن عناصر یک آرایه به آرایهای دیگر استفاده میشود.
مثال:
int[] sourceArray = { 1, 2, 3, 4, 5 }; int[] destinationArray = new int[5]; Array.Copy(sourceArray, destinationArray, sourceArray.Length); foreach (int number in destinationArray) { Console.WriteLine(number); // خروجی: 1, 2, 3, 4, 5 }
۷. متد Resize
متد Resize برای تغییر اندازه آرایه استفاده میشود.
مثال:
int[] numbers = { 1, 2, 3, 4, 5 }; Array.Resize(ref numbers, 7); numbers[5] = 6; numbers[6] = 7; foreach (int number in numbers) { Console.WriteLine(number); // خروجی: 1, 2, 3, 4, 5, 6, 7 }
۸. متد Find
متد Find برای پیدا کردن اولین عنصر که با شرط مشخصی مطابقت دارد به کار میرود.
مثال:
int[] numbers = { 1, 2, 3, 4, 5 }; int foundNumber = Array.Find(numbers, element => element > 3); Console.WriteLine(foundNumber); // خروجی: 4
۹. متد Exists
متد Exists بررسی میکند که آیا عنصر مشخصی در آرایه وجود دارد یا نه.
مثال:
int[] numbers = { 1, 2, 3, 4, 5 }; bool exists = Array.Exists(numbers, element => element == 3); Console.WriteLine(exists); // خروجی: True
۱۰. متد FindAll
متد FindAll تمام عناصری که با شرط مشخصی مطابقت دارند را برمیگرداند.
مثال:
int[] numbers = { 1, 2, 3, 4, 5, 6, 7 }; int[] evenNumbers = Array.FindAll(numbers, element => element % 2 == 0); foreach (int number in evenNumbers) { Console.WriteLine(number); // خروجی: 2, 4, 6 }
آرایهها یکی از مهمترین و کاربردیترین ساختارهای داده در سی شارپ هستند. با استفاده از متدهای مختلف آرایه، میتوانید به راحتی عملیات پیچیدهتری را بر روی دادههای خود انجام دهید و کدهای خود را بهینهتر و کارآمدتر کنید.
پیشنهاد مطالعه: آموزش EF Core در سی شارپ: گامی اساسی در توسعه نرم افزار
استفاده از Linq با آرایهها
Linq در سی شارپ ابزار قدرتمند برای کار با دادهها است. میتوانید از Linq برای انجام عملیات پیچیدهتر بر روی آرایهها استفاده کنید:
var topGrades = grades.Where(g => g > 80).ToArray();
آرایهها و حافظه
در سی شارپ، آرایهها به صورت پویا در حافظه مدیریت میشوند. این بدان معنی است که شما میتوانید به راحتی اندازه آرایهها را تغییر دهید و دادههای جدید اضافه کنید.
مثالی عملی از آرایه ها در سی شارپ
بیایید یک مثال عملی و کمی پیچیدهتر از آرایهها در سی شارپ ارائه دهیم. در این مثال، قصد داریم تا نمرات دانشآموزان یک کلاس را در آرایهای ذخیره کنیم، میانگین نمرات را محاسبه کنیم، نمرات بالاتر از میانگین را پیدا کنیم و در نهایت این نمرات را به ترتیب صعودی مرتب کنیم.
۱. ایجاد و مقداردهی به آرایه
ابتدا باید یک آرایه از نمرات دانشآموزان ایجاد و به آن مقدار دهیم. فرض کنید ۱۰ دانشآموز داریم.
using System; using System.Linq; class Program { static void Main() { int[] grades = { 85, 90, 78, 92, 88, 76, 95, 89, 74, 84 }; // محاسبه میانگین نمرات double average = grades.Average(); Console.WriteLine("میانگین نمرات: " + average); // پیدا کردن نمرات بالاتر از میانگین int[] aboveAverageGrades = grades.Where(grade => grade > average).ToArray(); Console.WriteLine("نمرات بالاتر از میانگین: " + string.Join(", ", aboveAverageGrades)); // مرتب سازی نمرات بالاتر از میانگین به ترتیب صعودی Array.Sort(aboveAverageGrades); Console.WriteLine("نمرات بالاتر از میانگین به ترتیب صعودی: " + string.Join(", ", aboveAverageGrades)); } }
شرح کد برای کاربران مبتدی
۱. ایجاد آرایه نمرات: ابتدا یک آرایه به نام grades ایجاد کرده و نمرات ۱۰ دانشآموز را در آن ذخیره میکنیم. هر عنصر آرایه یک نمره است.
int[] grades = { 85, 90, 78, 92, 88, 76, 95, 89, 74, 84 };
- محاسبه میانگین نمرات: با استفاده از متد Average از کتابخانه System.Linq، میانگین نمرات را محاسبه میکنیم. این متد تمام نمرات را جمع زده و بر تعداد آنها تقسیم میکند.
double average = grades.Average(); Console.WriteLine("میانگین نمرات: " + average);
- پیدا کردن نمرات بالاتر از میانگین: با استفاده از متد Where از کتابخانه System.Linq، نمرات بالاتر از میانگین را پیدا کرده و آنها را در یک آرایه جدید به نام aboveAverageGrades ذخیره میکنیم.
int[] aboveAverageGrades = grades.Where(grade => grade > average).ToArray(); Console.WriteLine("نمرات بالاتر از میانگین: " + string.Join(", ", aboveAverageGrades));
- مرتب سازی نمرات بالاتر از میانگین به ترتیب صعودی: با استفاده از متد Sort از کلاس Array، نمرات بالاتر از میانگین را به ترتیب صعودی مرتب میکنیم.
Array.Sort(aboveAverageGrades); Console.WriteLine("نمرات بالاتر از میانگین به ترتیب صعودی: " + string.Join(", ", aboveAverageGrades));
این مثال به شما نشان میدهد که چگونه میتوانید با استفاده از آرایهها، نمرات دانشآموزان را مدیریت کنید، عملیات محاسباتی انجام دهید و دادهها را به صورت مرتب و منظم ارائه کنید. این مثال برای کاربران مبتدی مناسب است زیرا مفاهیم پایهای آرایهها را به همراه متدهای کاربردیتر نشان میدهد. با تمرین و مرور این مثال، میتوانید درک بهتری از آرایهها و کاربردهای آنها در سی شارپ پیدا کنید.
پیشنهاد مطالعه: آموزش delegate در سی شارپ به زبان ساده + مثال عملی
فیلم آموزش آرایه در سی شارپ
برای کسانی که ترجیح میدهند یادگیری خود را از طریق ویدئو تقویت کنند، فیلمهای آموزشی فراوانی وجود دارد که میتوانید از آنها بهرهمند شوید. فیلم آموزش آرایه در سی شارپ به شما کمک میکند تا با مثالهای عملی و کاربردی، مفاهیم را بهتر درک کنید.
پرسشهای متداول در مورد آرایه ها در سی شارپ
در این بخش پایانی چند سوال متداول برای بحث آرایه ها در C# ارائه شده است:
۱. آرایهها در سی شارپ چه کاربردی دارند؟
آرایهها برای ذخیره و مدیریت مجموعهای از دادهها از یک نوع به کار میروند. آنها به شما این امکان را میدهند تا به راحتی به دادهها دسترسی داشته باشید و آنها را مدیریت کنید.
۲. چگونه میتوان یک آرایه در سی شارپ ایجاد کرد؟
برای ایجاد یک آرایه در سی شارپ، میتوانید از سینتسک زیر استفاده کنید: int[] numbers = new int[5];
۳. آیا میتوان از Linq برای کار با آرایهها استفاده کرد؟
بله، Linq یک ابزار قدرتمند برای کار با دادهها است و میتوانید از آن برای انجام عملیات پیچیدهتر بر روی آرایهها استفاده کنید.
۴. تفاوت بین آرایههای تک بعدی و چند بعدی چیست؟
آرایههای تک بعدی به شما اجازه میدهند تا دادهها را به صورت خطی ذخیره کنید، در حالی که آرایههای چند بعدی به شما اجازه میدهند تا دادهها را در قالب ماتریس یا جدول ذخیره کنید.
۵. آرایههای دندانهدار چه کاربردی دارند؟
آرایههای دندانهدار برای ذخیره دادههایی با اندازههای مختلف بسیار مفید هستند و به شما این امکان را میدهند که هر عنصر آرایه خود یک آرایه باشد.
کلام پایانی
آرایهها یکی از ابزارهای اساسی در برنامهنویسی هستند که به شما این امکان را میدهند تا دادهها را به صورت منظم و کارآمد مدیریت کنید. با یادگیری نحوه استفاده از آرایه ها در سی شارپ، میتوانید برنامههای خود را بهبود بخشید و کدهای خود را سادهتر و کارآمدتر کنید.
آیا آمادهاید تا مهارتهای برنامهنویسی خود را به سطح جدیدی ببرید؟ به دورههای آموزش سی شارپ و آموزش برنامه نویسی مکتبخونه بپیوندید و از فرصتهای بینظیر یادگیری بهرهمند شوید! با ما در مکتبخونه همراه باشید و اصول برنامهنویسی سی شارپ را از مبتدی تا پیشرفته یاد بگیرید.
چرا دورههای مکتبخونه؟
- اساتید مجرب: یادگیری از بهترینها در این صنعت.
- محتوای جامع: از اصول پایه تا مباحث پیشرفته.
- پروژههای عملی: تجربهی واقعی در دنیای برنامهنویسی.
- پشتیبانی قوی: همیشه در کنار شما برای پاسخ به سوالات و رفع مشکلات.
فرقی نمیکند که تازهکار هستید یا به دنبال ارتقای مهارتهای خود، دورههای سی شارپ مکتبخونه برای هر سطحی مناسب است. اکنون زمان آن است که قدم بزرگی به سمت آیندهی شغلی روشنتر و مهارتهای قویتر بردارید.