ویرگول
ورودثبت نام
سید عمید قائم مقامی
سید عمید قائم مقامیبرنامه نویسی سیستم ویندوز و مهندسی معکوس و علاقه مند به آموزش.
سید عمید قائم مقامی
سید عمید قائم مقامی
خواندن ۲ دقیقه·۵ روز پیش

سیشارپ list<T>:

کلاس List<T>:

List<T> یکی از پرکاربردترین کلاس‌های generic collection در سی‌شارپ است که در فضای نام System.Collections.Generic قرار دارد.

معرفی کلی

List<T> یک لیست پویا و type-safe است که می‌تواند عناصر از نوع T را ذخیره کند.

مثال:

using System.Collections.Generic; // ایجاد یک لیست از اعداد صحیح List<int> numbers = new List<int>(); // ایجاد یک لیست از رشته‌ها List<string> names = new List<string>();

ویژگی‌های کلیدی

1. پویا بودن سایز

  • نیازی به تعیین اندازه اولیه نیست

  • به طور خودکار هنگام نیاز گسترش می‌یابد

2. Type Safety

  • فقط عناصر از نوع T را می‌پذیرد

  • از خطاهای نوع در زمان کامپایل جلوگیری می‌کند

افزودن عناصر

List<string> fruits = new List<string>(); // Add - افزودن در انتها fruits.Add("Apple"); fruits.Add("Banana"); // AddRange - افزودن چند عنصر fruits.AddRange(new[] {"Orange", "Mango"}); // Insert - درج در موقعیت خاص fruits.Insert(1, "Grape"); // در index = 1

حذف عناصر

// Remove - حذف اولین occurrence fruits.Remove("Apple"); // RemoveAt - حذف با index fruits.RemoveAt(0); // RemoveAll - حذف با شرط fruits.RemoveAll(f => f.StartsWith("A")); // Clear - حذف همه عناصر fruits.Clear();

دسترسی و جستجو

List<int> numbers = new List<int> { 1, 2, 3, 4, 5 }; // دسترسی با index int first = numbers[0]; // 1 // Contains - بررسی وجود bool hasThree = numbers.Contains(3); // true // IndexOf - پیدا کردن index int index = numbers.IndexOf(4); // 3 // Find - پیدا کردن با شرط int even = numbers.Find(n => n % 2 == 0); // 2 // FindAll - پیدا کردن همه با شرط List<int> evens = numbers.FindAll(n => n % 2 == 0);

سایر عملیات

// Count - تعداد عناصر int count = numbers.Count; // Sort - مرتب‌سازی numbers.Sort(); // Reverse - معکوس کردن ترتیب numbers.Reverse(); // ForEach - اجرای عمل بر روی هر عنصر numbers.ForEach(n => Console.WriteLine(n));

مزایای List<T>

  • انعطاف‌پذیری: اندازه پویا

  • کارایی: دسترسی سریع با index (O(1))

  • امنیت نوع: جلوگیری از خطاهای نوع

  • قابلیت LINQ: پشتیبانی کامل از LINQ

  • متدهای کمکی: دارای متدهای کاربردی زیاد

معایب و محدودیت‌ها

  • حذف/درج در میانه: کند است (O(n))

  • مصرف حافظه: ممکن است بیشتر از نیاز حافظه رزرو کند

نکات مهم

  • همیشه با فضای نام System.Collections.Generic کار می‌کند

  • برای انواع value type، boxing/unboxing ندارد

  • thread-safe نیست (برای محیط‌های multithreading نیاز به synchronization دارد)

  • می‌تواند به عنوان پارامتر ورودی و خروجی متدها استفاده شود

جمع‌بندی

List<T> بهترین انتخاب برای اکثر سناریوهایی است که نیاز به مجموعه‌ای پویا از داده‌های هم‌نوع دارید. ترکیب type safety با انعطاف‌پذیری و متدهای کمکی آن را به یکی از پرکاربردترین ساختارهای داده در سی‌شارپ تبدیل کرده است.

Telegram: @CaKeegan
Gmail : amidgm2020@gmail.com

سی‌شارپlist
۰
۰
سید عمید قائم مقامی
سید عمید قائم مقامی
برنامه نویسی سیستم ویندوز و مهندسی معکوس و علاقه مند به آموزش.
شاید از این پست‌ها خوشتان بیاید