دسته بندی مقالات
- بیشتر -محصولات
- بیشتر -آخرین مقالات
- بیشتر --
رمزنگاری نامتقارن Asymmetric در SQL Server
1404/04/18 -
کنترل MenuStrip در سی شارپ
1404/04/17 -
قفل گذاری روی اطلاعات در پایگاه داده SQL
1404/04/10 -
خروج کاربر غیرفعال در ASP.NET Core
1404/04/08 -
مفهوم ListView در سیشارپ
1404/04/07 -
کنترل ListBox در سی شارپ
1404/02/07
کلاس Array در سی شارپ

معرفی کلاس Array در سیشارپ
کلاس Array در سیشارپ یکی از مهمترین و اصلیترین کلاسها برای مدیریت آرایهها است.
این کلاس در فضای نام System تعریف شده و به عنوان پایهای برای تمامی انواع آرایهها، از جمله آرایههای تکبعدی، چندبعدی و آرایههای دندانهدار (Jagged Array)، استفاده میشود.
کلاس Array امکان دسترسی به عناصر آرایهها، جستجو، مرتبسازی، معکوس کردن و عملیات مختلف دیگر را فراهم میکند.
همه آرایهها در سیشارپ از کلاس Array ارثبری میکنند، بنابراین هر آرایهای که در این زبان تعریف میشود به طور خودکار از متدها و ویژگیهای این کلاس بهره میبرد.
در نتیجه، با استفاده از این کلاس میتوانیم به صورت بهینه و آسانتر با آرایهها کار کنیم.
تعریف آرایه در سیشارپ
آرایهها در سیشارپ به عنوان ساختارهای دادهای با اندازه ثابت تعریف میشوند که عناصر را به ترتیب و به صورت پیوسته در حافظه ذخیره میکنند. در اینجا چند روش برای تعریف آرایهها وجود دارد:
تعریف آرایه با مشخص کردن نوع داده و اندازه:
int[] numbers = new int[5]; // آرایهای از ۵ عنصر از نوع int
مقداردهی اولیه هنگام تعریف آرایه:
int[] numbers = { 10, 20, 30, 40, 50 };
در مثال بالا، آرایه numbers دارای پنج عنصر با مقادیر مشخص شده است. آرایهها در سیشارپ اندازه ثابت دارند و پس از تعریف، اندازه آنها تغییر نمیکند.
دسترسی به عناصر آرایهها و مدیریت آنها
برای دسترسی به عناصر یک آرایه، از ایندکس آنها استفاده میکنیم. ایندکسها در سیشارپ از صفر شروع میشوند. به عنوان مثال:
int[] numbers = { 10, 20, 30, 40, 50 };
int firstNumber = numbers[0]; // دسترسی به اولین عنصر
numbers[1] = 25; // تغییر مقدار دومین عنصر به ۲۵
متدهای مهم کلاس Array در سی شارپ
کلاس Array مجموعهای از متدهای کاربردی برای مدیریت آرایهها را فراهم میکند که در ادامه به برخی از مهمترین آنها اشاره خواهیم کرد.
-
متد Sort
متد Sort برای مرتبسازی عناصر آرایه به صورت صعودی استفاده میشود:
int[] numbers = { 50, 10, 40, 20, 30 };
Array.Sort(numbers);
foreach (int number in numbers)
{
Console.WriteLine(number);
}
خروجی این کد بهصورت زیر خواهد بود:
10
20
30
40
50
-
متد Reverse
این متد ترتیب عناصر آرایه را معکوس میکند:
int[] numbers = { 10, 20, 30, 40, 50 };
Array.Reverse(numbers);
foreach (int number in numbers)
{
Console.WriteLine(number);
}
خروجی:
50
40
30
20
10
-
متد IndexOf
متد IndexOf برای پیدا کردن ایندکس اولین وقوع یک مقدار مشخص در آرایه استفاده میشود:
int[] numbers = { 10, 20, 30, 40, 50 };
int index = Array.IndexOf(numbers, 30);
Console.WriteLine(index);
خروجی:
2
-
متد Clear
این متد تمامی عناصر مشخص شده در آرایه را حذف میکند و مقدار 0 یا null (برای نوعهای مرجع) را جایگزین میکند:
int[] numbers = { 10, 20, 30, 40, 50 };
Array.Clear(numbers, 1, 3); // از ایندکس ۱ تا ۳ را پاک میکند
foreach (int number in numbers)
{
Console.WriteLine(number);
}
خروجی:
10
0
0
0
50
🌟 آیا به دنبال یک فرصت عالی برای یادگیری برنامهنویسی هستید؟ 🚀
با دوره آموزشی سیشارپ ما، شما میتوانید مهارتهای خود را به سطح جدیدی ارتقا دهید! این دوره بهطور کامل طراحی شده تا به شما کمک کند تا از مبتدی تا پیشرفته در دنیای برنامهنویسی سیشارپ پیش بروید.
👨🏫 چرا دوره ما را انتخاب کنید؟
- محتوای جامع و عملی: با پروژههای واقعی و تمرینات عملی، یادگیری را به تجربهای جذاب تبدیل کنید.
- مدرس مجرب: از تجربه و دانش مدرس حرفهای بهرهمند شوید که شما را در هر مرحله از یادگیری راهنمایی میکنند.
- پشتیبانی ۲۴/۷: هر زمان که سوالی داشتید، ما در کنار شما خواهیم بود تا به شما کمک کنیم.
- دسترسی مادامالعمر: به محتوای دوره دسترسی دائمی داشته باشید و هر زمان که خواستید، میتوانید به آن مراجعه کنید.
💡 فرصت را از دست ندهید!
بایادگیری سیشارپ، میتوانید در دنیای فناوری اطلاعات به یک متخصص تبدیل شوید و در پروژههای جذاب و چالشبرانگیز شرکت کنید.
همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آیندهای روشنتر بردارید!
-
متد Copy
این متد به ما امکان میدهد که عناصر یک آرایه را به آرایهی دیگری کپی کنیم:
int[] sourceArray = { 10, 20, 30, 40, 50 };
int[] destinationArray = new int[5];
Array.Copy(sourceArray, destinationArray, 5);
foreach (int number in destinationArray)
{
Console.WriteLine(number);
}
خروجی:
10
20
30
40
50
-
متد Resize
با استفاده از این متد میتوان اندازه آرایه را تغییر داد. اگر آرایه بزرگتر شود، عناصر جدید با مقدار 0 یا null مقداردهی میشوند:
int[] numbers = { 10, 20, 30 };
Array.Resize(ref numbers, 5);
foreach (int number in numbers)
{
Console.WriteLine(number);
}
خروجی:
10
20
30
0
0
-
متد Find و FindAll
متد Find اولین عنصری را که با شرط مشخصی سازگار است پیدا میکند، و متد FindAll تمامی عناصر سازگار با شرط را برمیگرداند:
int[] numbers = { 10, 20, 30, 40, 50 };
int result = Array.Find(numbers, x => x > 25);
Console.WriteLine(result); // خروجی: ۳۰
int[] results = Array.FindAll(numbers, x => x > 25);
foreach (int number in results)
{
Console.WriteLine(number);
}
خروجی:
30
40
50
ویژگیهای مهم کلاس Array در سی شارپ
علاوه بر متدهای مختلف، کلاس Array ویژگیهای دیگری نیز دارد که اطلاعات خاصی از آرایه را فراهم میکند.
-
ویژگی Length
این ویژگی تعداد کل عناصر آرایه را برمیگرداند:
int[] numbers = { 10, 20, 30, 40, 50 };
Console.WriteLine(numbers.Length);
خروجی:
5
-
ویژگی Rank
این ویژگی تعداد ابعاد آرایه را برمیگرداند. برای آرایههای تکبعدی مقدار 1 و برای آرایههای دوبعدی مقدار 2 خواهد بود:
int[,] matrix = new int[3, 3];
Console.WriteLine(matrix.Rank);
خروجی:
2
-
ویژگی IsFixedSize
این ویژگی نشان میدهد که آیا آرایه دارای اندازه ثابت است یا خیر. برای تمام آرایهها مقدار این ویژگی true است:
int[] numbers = { 10, 20, 30 };
Console.WriteLine(numbers.IsFixedSize);
خروجی:
true
-
ویژگی IsReadOnly
این ویژگی نشان میدهد که آیا آرایه فقط خواندنی است یا خیر. در سیشارپ، مقدار این ویژگی برای آرایهها به طور پیشفرض false است:
int[] numbers = { 10, 20, 30 };
Console.WriteLine(numbers.IsReadOnly);
خروجی:
false
مثالهایی از کاربرد کلاس Array
در این بخش چند مثال عملی از کاربردهای کلاس Array را بررسی میکنیم:
-
مثال 1: مرتبسازی و معکوس کردن آرایه
در این مثال، ابتدا یک آرایهی اعداد تعریف شده، سپس با استفاده از متدهای Sort و Reverse عملیات مرتبسازی و معکوس کردن انجام میشود.
int[] numbers = { 42, 17, 8, 99, 23 };
Array.Sort(numbers);
Array.Reverse(numbers);
foreach (int number in numbers)
{
Console.WriteLine(number);
}
خروجی:
99
42
23
17
8
-
مثال 2: پیدا کردن عناصر با شرط خاص
در این مثال، از متد FindAll برای یافتن تمام عناصر بزرگتر از ۲۰ استفاده میکنیم:
int[] numbers = { 10, 25, 30, 5, 40, 15 };
int[] results = Array.FindAll(numbers, x => x > 20);
foreach (int number in results)
{
Console.WriteLine(number);
}
خروجی:
25
30
40
یک مثال پروژهمحور از استفاده از کلاس Array برای مدیریت نمرات دانشجویان در یک کلاس ارائه شده است.
در این مثال، از آرایه برای ذخیرهی نمرات استفاده میشود، و یک سری عملیات ساده روی نمرات انجام میگیرد.
using System;
public class StudentGrades
{
public static void Main()
{
// تعریف آرایهای با طول ثابت برای نمرات
int[] grades = new int[5] { 85, 90, 78, 92, 88 };
// محاسبه و نمایش میانگین نمرات
int total = 0;
for (int i = 0; i < grades.Length; i++)
{
total += grades[i];
}
double average = (double)total / grades.Length;
Console.WriteLine("Average Grade: " + average);
// یافتن بالاترین نمره
int maxGrade = grades[0];
foreach (int grade in grades)
{
if (grade > maxGrade)
maxGrade = grade;
}
Console.WriteLine("Highest Grade: " + maxGrade);
// نمایش همه نمرات
Console.WriteLine("All Grades:");
foreach (int grade in grades)
{
Console.WriteLine(grade);
}
}
}
توضیحات
-
تعریف آرایه: یک آرایهی grades با طول ثابت ۵ ایجاد شده است.
-
محاسبه میانگین: با جمع کردن همه عناصر و تقسیم آنها بر تعداد عناصر، میانگین نمرات محاسبه میشود.
-
یافتن بالاترین نمره: با استفاده از یک حلقه foreach بالاترین نمره در آرایه پیدا میشود.
-
محدودیت آرایه: طول آرایه ثابت است و اگر نیاز به افزودن نمرات بیشتر باشد، باید یک آرایه جدید ایجاد کنیم.
-
این پروژه نشان میدهد که چرا گاهی اوقات استفاده از ساختار دادههای پویا مانند ArrayList بهتر است.
دوره های مرتبط

آموزش برنامه نویسی سی شارپ
زبان شی گرایی حرفه ای سی شارپ یک زبان قدرتمند برای طراحی نرم افزار به شمار میرود.