ArrayList ومجموعة قائمة صواب
على System.Collections.ArrayListأو System.Collections.Generic.List<T>الكائن هو إصدار sophهوticated عنصر الصفيف. ArrayListالفئة و List<T>فئة عامة توفر بعض الميزات التي يتم عرضها في معظم System.Collectionsالفئات والتي لا تكون في Arrayclass. فعلى سبيل المثال:
سعة Array تكون ثابتة، بينما سعة ArrayList أو List<T> تتسع تلقائياً عندما يكون مطلوباً ذلك. إذا تغيرت قيمة الخاصية ArrayList.Capacity، فستتم عملية إعادة تخصيص ذاكرة ونسخ العناصر تلقائياً.
توفر ArrayList وList<T> أساليب التي تقوم بإضافة أو إدراج أو إزالة نطاق من العناصر. في Array، يمكنك الحصول علي عنصر واحد فقط أو تعيينه في المرة الواحدة.
نسخة متزامنة من ArrayListهو سهلة الإنشاء باستخدام Synchronizedأسلوب؛ على الرغم من ذلك، th هو نوع المزامنة هو فعالة نسبيا. تتركه الفئات Array و List<T> إلي المستخدم ليقوم بتنفيذ المزامنة. لا توفر مساحة الاسم System.Collections.Concurrent نوع قائمة متزامنة، ولكن توفر الأنواع ConcurrentQueue<T> و ConcurrentStack<T>.
ArrayList and List<T> provide methods that return read-only and fixed-size wrappers to the collection. Arrayهل عدم.
من جانب اخر، يقدم Array بعض مرونة التي لايقدمها ArrayList و List<T>. فعلى سبيل المثال:
يمكنك تعيين الحد الأدنى من Array ، ولكن الحد الأدنى لـ ArrayList أو List<T> هو دائماً صفر.
يمكن أن يكون لـ Array عدة أبعاد، ولكن يحتوي ArrayList أو List<T> دوماً علي بعد واحد. ومع ذلك، يمكنك بسهولة إنشاء قائمة صفائف أو قائمة من القوائم.
توفر Array لنوع محدد(غير Object) أداء أفضل من ArrayList. وهذا لأن العناصر من ArrayList تكون من النوع Object; لذلك، فالتحويل إلي كائن والتحويل إلي نوع القيمة تظهر عادةً عند تخزين أو استرداد نوع القيمة. ومع ذلك، يمكن لـ List<T> توفير أداء مشابه لصفيف من نفس النوع إذا لم يكن هناك داعي لإعادة التخصيص; وهذا يعني، إذا كانت السعة الأولي مساوية للحد الأقصي تقريباً لحجم القائمة.
أغلب المواقف التي تستدعي صفيف يمكنها استخدام ArrayList أو List<T> بدلاً من ذلك; فهي أسهل للاستخدم، و بشكل عام، يكون أداءها مشابه لصفيف من نفس النوع.
Array هي عبارة عن مساحة الاسم System; وتكون ArrayList موجودة في مساحة الاسم System.Collections; وتكون List<T> موجودة في مساحة الاسم System.Collections.Generic.