ارایه با طول متغیر ArrayList  در سی شارپ

تیم تحریریه 1403/08/15 0 53
لینک کوتاه https://zoheirsoftware.com/z/cfe6c0f |
آرایه با طول متغیر ArrayList  در سی شارپ,معرفی ArrayList و کاربرد آن,تفاوت‌های اصلی بین Array و ArrayList

آرایه با طول متغیر ArrayList  در سی شارپ

در زبان برنامه‌نویسی سی‌شارپ، آرایه‌ها و ساختارهای مختلف داده‌ای برای ذخیره و مدیریت داده‌ها وجود دارند.

از جمله‌ی این ساختارها می‌توان به Array و ArrayList اشاره کرد.

هر کدام از این دو نوع ساختار برای مدیریت داده‌های مختلف استفاده می‌شوند، اما تفاوت‌های مهمی از نظر کارایی، اندازه و نوع داده‌ای که می‌توانند ذخیره کنند، دارند.

در این مقاله به معرفی ArrayList، تفاوت‌های آن با Array و همچنین نکات کاربردی و مهم استفاده از ArrayList در سی‌شارپ می‌پردازیم.

 

آرایه با طول متغیر ArrayList  در سی شارپ

آرایه‌ها (Array) در سی‌شارپ

آرایه‌ها در سی‌شارپ یکی از اصلی‌ترین انواع ساختارهای داده‌ای هستند که برای ذخیره‌سازی مجموعه‌ای از داده‌ها استفاده می‌شوند.

هر آرایه یک مجموعه‌ی مرتب از عناصر با طول ثابت است، به این معنی که پس از تعریف طول آرایه، نمی‌توان اندازه‌ی آن را تغییر داد.

عناصر یک آرایه باید همگی از یک نوع داده‌ای باشند، مثلاً می‌توان آرایه‌ای از نوع int یا string داشت، اما نمی‌توان در یک آرایه هم عدد صحیح و هم رشته ذخیره کرد.

در سی‌شارپ، یک آرایه را می‌توان به‌صورت زیر تعریف و مقداردهی کرد:

int[] numbers = new int[5]; // آرایه‌ای از 5 عدد صحیح
numbers[0] = 10;
numbers[1] = 20;
// و به همین ترتیب ...


یا می‌توان مستقیماً مقداردهی اولیه را هنگام تعریف انجام داد:

int[] numbers = { 10, 20, 30, 40, 50 };


آرایه‌ها در سی‌شارپ دارای طول ثابت هستند.

پس از تعریف و مقداردهی اولیه، نمی‌توان اندازه‌ی آن‌ها را تغییر داد.

اگر نیاز به اضافه یا حذف عناصر داشته باشیم، باید یک آرایه‌ی جدید تعریف کنیم یا از ساختارهایی که طول متغیر دارند مانند ArrayList استفاده کنیم.

معرفی ArrayList و کاربرد آن

ArrayList یک کلاس در System.Collections است که نوعی لیست با طول متغیر را فراهم می‌کند.

این ساختار داده‌ای به ما اجازه می‌دهد که به‌صورت داینامیک و بدون محدودیت اولیه، عناصر را به لیست اضافه یا حذف کنیم.

برخلاف Array که فقط از یک نوع داده پشتیبانی می‌کند، ArrayList می‌تواند از نوع‌های مختلف داده‌ای در یک لیست استفاده کند.

نحوه‌ی تعریف و استفاده از ArrayList

برای تعریف یک ArrayList ابتدا باید فضای نام System.Collections را به برنامه اضافه کنیم:

using System.Collections;

ArrayList myList = new ArrayList();
myList.Add(10); // اضافه کردن عدد صحیح
myList.Add("Hello"); // اضافه کردن یک رشته
myList.Add(3.14); // اضافه کردن عدد اعشاری


همانطور که مشاهده می‌کنید، در ArrayList می‌توان انواع داده‌های مختلف را به لیست اضافه کرد.

متدهای اصلی ArrayList در سی شارپ

ArrayList دارای متدهای متنوعی است که عملیات مختلفی را بر روی داده‌ها فراهم می‌کند.

برخی از مهم‌ترین متدهای ArrayList عبارتند از:

  • Add

    یک عنصر به انتهای لیست اضافه می‌کند.
myList.Add(25);

 

  • Insert

    عنصری را در موقعیت مشخصی از لیست اضافه می‌کند.

 

myList.Insert(1, "World");
  • Remove

    یک عنصر مشخص را از لیست حذف می‌کند.
myList.Remove("Hello");

 

  • RemoveAt

    عنصر موجود در یک ایندکس خاص را حذف می‌کند.
myList.RemoveAt(0);

 

  • Clear

    تمامی عناصر موجود در ArrayList را حذف می‌کند.
myList.Clear();

 

  • Count

    تعداد عناصر موجود در ArrayList را برمی‌گرداند.
int count = myList.Count;

 

  • Contains

    بررسی می‌کند که آیا عنصر خاصی در ArrayList وجود دارد یا خیر.
bool exists = myList.Contains("Hello");

 

 

متدهای اصلی ArrayList در سی شارپ

 

تفاوت‌های اصلی بین Array و ArrayList

Array و ArrayList هر دو برای نگهداری مجموعه‌ای از داده‌ها استفاده می‌شوند، اما تفاوت‌های مهمی بین آن‌ها وجود دارد:

  • اندازه‌ی ثابت در مقابل اندازه‌ی متغیر

    • Array

      اندازه‌ی ثابت دارد وقتی یک آرایه تعریف می‌شود، اندازه‌ی آن نمی‌تواند تغییر کند.
      اگر نیاز به اضافه کردن عناصر بیشتری باشد، باید یک آرایه‌ی جدید ایجاد کرد.
    • ArrayList

      دارای اندازه‌ی متغیر است و به‌صورت داینامیک می‌توان عناصر را به آن اضافه یا حذف کرد.
  • نوع داده

    • Array

      فقط می‌تواند عناصر از یک نوع داده‌ای را نگه‌داری کند.
      مثلاً [...]int فقط می‌تواند مقادیر عددی صحیح نگهداری کند.
    • ArrayList

      می‌تواند انواع داده‌ای مختلف را در خود جای دهد؛ بنابراین، هم int، هم string و سایر نوع‌ها می‌توانند در یک ArrayList ذخیره شوند.
  • عملکرد (Performance)

    • Array

      از نظر کارایی و سرعت به دلیل ساختار ساده‌تر، سریع‌تر عمل می‌کند.
      چون Array یک ساختار نوع‌دار است، نوع داده‌ها از ابتدا مشخص بوده و زمان کمتری برای دسترسی به عناصر نیاز دارد.
    • ArrayList

      به دلیل پشتیبانی از انواع داده‌ای مختلف و نیاز به تبدیل نوع داده‌ای (Boxing و Unboxing)، نسبت به Array کندتر است.
      برای هر بار دسترسی به یک مقدار از ArrayList، ممکن است نیاز به تبدیل نوع داده وجود داشته باشد که باعث کاهش عملکرد می‌شود.
  • نیاز به فضای نام (Namespace)

    • Array

      بخشی از فضای نام System است و نیازی به اضافه کردن فضای نام دیگری ندارد.
    • ArrayList

      بخشی از فضای نام System.Collections است و برای استفاده از آن باید این فضای نام را اضافه کنیم.

 

تفاوت‌های اصلی بین Array و ArrayList

 

مثال‌های کاربردی از ArrayList و مقایسه با Array

  • جمع‌آوری داده‌ها از نوع‌های مختلف

    در سناریوهایی که نیاز است چندین نوع داده در یک لیست ذخیره شوند، ArrayList بسیار مناسب است. به عنوان مثال:
ArrayList items = new ArrayList();
items.Add("Ali");
items.Add(30);
items.Add(true);

foreach (var item in items)
{
    Console.WriteLine(item);
}


این کد می‌تواند انواع داده‌های مختلف را ذخیره و نمایش دهد، در حالی که در Array چنین قابلیتی وجود ندارد.

  • اضافه و حذف عناصر

یکی از مشکلات آرایه‌ها این است که اندازه‌ی آن‌ها ثابت است و نمی‌توان به راحتی به آن‌ها عناصر جدید اضافه کرد.

در ArrayList به‌راحتی می‌توان عناصر را اضافه یا حذف کرد:

ArrayList numbers = new ArrayList();
numbers.Add(1);
numbers.Add(2);
numbers.Add(3);

numbers.Remove(2); // حذف عنصر 2

numbers.Add(4); // اضافه کردن عدد جدید
  •  استفاده از حلقه foreach با ArrayList

    از آنجا که ArrayList از IEnumerable پیروی می‌کند، می‌توان از حلقه‌ی foreach برای پیمایش آن استفاده کرد. مثال:
ArrayList fruits = new ArrayList { "Apple", "Banana", "Cherry" };

foreach (string fruit in fruits)
{
    Console.WriteLine(fruit);
}



این حلقه به‌سادگی تمام عناصر موجود در ArrayList را پیمایش می‌کند.

 

محدودیت‌ها و نکات مهم در استفاده از ArrayList

با وجود مزایای ArrayList، باید به محدودیت‌ها و نکات مهمی نیز توجه داشت:

  • عدم تایپ‌دهی قوی (Lack of Strong Typing)

    از آنجا که ArrayList می‌تواند انواع داده‌های مختلف را ذخیره کند، این موضوع ممکن است باعث بروز خطاهای زمان اجرا شود.
    برای مثال، اگر انتظار داریم تمام عناصر ArrayList از نوع int باشند، اضافه کردن یک عنصر string می‌تواند منجر به بروز خطا شود.
  • مشکلات تبدیل نوع داده‌ای (Boxing و Unboxing)

    در ArrayList، هر بار که یک نوع داده‌ی ارزشمند (Value Type) مانند int ذخیره می‌شود، نیاز به عملیات تبدیل نوع داده‌ای (Boxing) است و هنگام بازیابی نیز عملیات Unboxing انجام می‌شود.
    این فرآیندها باعث کاهش سرعت برنامه می‌شود.

 

محدودیت‌ها و نکات مهم در استفاده از ArrayList

مثال پروژه محور  از آرایه با طول متغیر ArrayList  در  طراحی نرم افزاری تجاری


در اینجا یک مثال کوتاه پروژه‌ محور از استفاده‌ی ArrayList برای مدیریت سفارشات در یک فروشگاه آنلاین آورده شده است:
 
using System;
using System.Collections;

public class OnlineStore
{
    public static void Main()
    {
        ArrayList orders = new ArrayList();

        // افزودن سفارشات به لیست
        orders.Add("Order #001 - Laptop");
        orders.Add("Order #002 - Smartphone");
        orders.Add("Order #003 - Headphones");

        // افزودن سفارش جدید به صورت دینامیک
        orders.Add("Order #004 - Tablet");

        // نمایش همه سفارشات
        Console.WriteLine("Order List:");
        foreach (var order in orders)
        {
            Console.WriteLine(order);
        }

        // حذف یک سفارش
        orders.Remove("Order #002 - Smartphone");

        // نمایش سفارشات بعد از حذف
        Console.WriteLine("\nUpdated Order List:");
        foreach (var order in orders)
        {
            Console.WriteLine(order);
        }
    }
}

 

توضیحات

  • از ArrayList برای ذخیره و مدیریت سفارشات به صورت پویا استفاده می‌شود.

  • می‌توان به راحتی سفارشات جدید را اضافه و سفارشات قدیمی را حذف کرد.

  • این پروژه به صورت دینامیک اندازه‌ی ArrayList را تغییر می‌دهد، که یکی از مزایای آن نسبت به Array است.

دوره های مرتبط
آموزش برنامه نویسی سی شارپ,آموزش پروژه محور سی شارپ,آموزش مقدماتی تا پیشرفته سی شارپ,طراحی نرم افزار تحت ویندوز

آموزش برنامه نویسی سی شارپ

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

999,000 تومان

1.9k بازدید
مشاهده

ارسال دیدگاه

برای ارسال نظر لطفا ورود یا ثبت نام کنید.