آرایهها و لیستها در #C
آرایهها و لیستها در #C
در #C، آرایهها و لیستها برای ذخیره و مدیریت مجموعهای از دادهها استفاده میشن. تفاوت اصلی این دو در نحوه مدیریت اندازه و عملکرد اونهاست. آرایهها اندازه ثابت دارن، در حالی که لیستها از کلاسهای کتابخانه استاندارد #C میخوان که قابلیت تغییر اندازه دارند.
۱. آرایهها در #C
آرایهها مجموعهای از عناصر با نوع داده یکسان هستند که در یک مکان حافظه ذخیره میشوند. اندازه آرایهها در زمان تعریف ثابت هست و نمیتوان اندازه آن را تغییر داد.
تعریف آرایه
آرایهها میتونند به صورت یکبعدی، دوبعدی یا بیشتر تعریف بشن. در اینجا روشهای مختلف تعریف آرایهها رو بررسی میکنیم.
آرایه یکبعدی
class Program
{
static void Main()
{
// تعریف یک آرایه یکبعدی
int[] numbers = new int[5]; // آرایهای از ۵ عدد صحیح
// مقداردهی به اعضای آرایه
numbers[0] = 1;
numbers[1] = 2;
numbers[2] = 3;
numbers[3] = 4;
numbers[4] = 5;
// نمایش اعضای آرایه
for (int i = 0; i < numbers.Length; i++)
{
Console.WriteLine("عدد: " + numbers[i]);
}
}
}
در این مثال، یک آرایه به نام numbers تعریف میکنیم که ظرفیتش ۵ است و سپس به اعضای اون مقداردهی میکنیم.
خروجی:
عدد: 2
عدد: 3
عدد: 4
عدد: 5
آرایه دوبعدی
class Program
{
static void Main()
{
// تعریف یک آرایه دوبعدی
int[,] matrix = new int[2, 2]; // آرایهای ۲x۲
// مقداردهی به اعضای آرایه
matrix[0, 0] = 1;
matrix[0, 1] = 2;
matrix[1, 0] = 3;
matrix[1, 1] = 4;
// نمایش اعضای آرایه دوبعدی
for (int i = 0; i < matrix.GetLength(0); i++)
{
for (int j = 0; j < matrix.GetLength(1); j++)
{
Console.Write(matrix[i, j] + "\t");
}
Console.WriteLine();
}
}
}
در این مثال، یک آرایه دوبعدی تعریف کردهایم و به هر عنصر آرایه مقادیری اختصاص دادهایم.
خروجی:
3 4
آرایه با مقداردهی اولیه
class Program
{
static void Main()
{
// آرایه با مقداردهی اولیه
int[] numbers = { 1, 2, 3, 4, 5 };
// نمایش اعضای آرایه
foreach (int num in numbers)
{
Console.WriteLine(num);
}
}
}
در این مثال، آرایه با مقادیر ابتدایی تعریف میشود و سپس از foreach برای نمایش اعضای آن استفاده میکنیم.
خروجی:
2
3
4
5
۲. لیستها در #C
لیستها در #C از کلاس <List<T که در کتابخانه System.Collections.Generic قرار داره، استفاده میکنند. بر خلاف آرایهها، اندازه لیستها میتونه تغییر کنه و میتوان اعضای جدیدی به آنها اضافه کرد یا اعضای موجود را حذف کرد.
تعریف و استفاده از لیست
برای استفاده از لیست، باید ابتدا کلاس List<T> رو از کتابخانه System.Collections.Generic فراخوانی کنید.
using System.Collections.Generic;
class Program
{
static void Main()
{
// تعریف یک لیست از اعداد صحیح
List<int> numbers = new List<int>();
// اضافه کردن اعضا به لیست
numbers.Add(1);
numbers.Add(2);
numbers.Add(3);
numbers.Add(4);
numbers.Add(5);
// نمایش اعضای لیست
foreach (int num in numbers)
{
Console.WriteLine(num);
}
}
}
در این مثال، از متد Add برای اضافه کردن مقادیر به لیست استفاده شده است.
خروجی:
2
3
4
5
عملیات مختلف روی لیستها
- حذف عضو از لیست:
using System.Collections.Generic;
class Program
{
static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
// حذف یک عضو از لیست
numbers.Remove(3); // حذف عدد 3
// نمایش اعضای لیست
foreach (int num in numbers)
{
Console.WriteLine(num);
}
}
}
خروجی:
2
4
5
- دسترسی به عنصر خاص:
using System.Collections.Generic;
class Program
{
static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
// دسترسی به عنصر خاص با استفاده از اندیس
Console.WriteLine("عنصر در موقعیت 2: " + numbers[2]);
}
}
خروجی:
- تعداد اعضای لیست:
using System.Collections.Generic;
class Program
{
static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
// تعداد اعضای لیست
Console.WriteLine("تعداد اعضای لیست: " + numbers.Count);
}
}
خروجی:
- حذف تمام اعضای لیست:
using System.Collections.Generic;
class Program
{
static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
// حذف تمام اعضای لیست
numbers.Clear();
Console.WriteLine("تعداد اعضای لیست پس از حذف: " + numbers.Count);
}
}
خروجی:
۳. مقایسه آرایهها و لیستها
ویژگی | آرایهها | لیستها |
---|---|---|
اندازه | ثابت و غیرقابل تغییر | متغیر و قابل تغییر |
عملکرد در دسترسی | دسترسی سریع به عناصر با استفاده از اندیس | مشابه به آرایهها، اما ممکن است کمی کندتر باشد |
عملیات اضافه کردن | غیرممکن (باید اندازه را از قبل مشخص کنید) | با استفاده از متد Add قابل تغییر |
عملیات حذف کردن | غیرممکن (اندازه ثابت است) | با استفاده از متدهای Remove یا Clear قابل انجام است |
جمعبندی
- آرایهها برای ذخیره مجموعهای از دادهها با اندازه ثابت استفاده میشوند و اندازه اونها بعد از تعریف تغییر نمیکنه.
- لیستها برای ذخیره مجموعههایی از دادهها با اندازه قابل تغییر استفاده میشوند و میتوان به راحتی اعضای جدیدی به آنها اضافه کرد یا اعضای موجود رو حذف کرد.
