C # متى يجب علي استخدام قائمة ومتى يجب أن أستخدم ArrayList؟

StackOverflow https://stackoverflow.com/questions/725459

  •  05-09-2019
  •  | 
  •  

سؤال

كما يقول العنوان متى يجب أن أستخدم List وعندما يجب علي استخدام ArrayList?

شكرا

هل كانت مفيدة؟

المحلول

الوقت الرئيسي للاستخدام ArrayList في .NET 1.1

بخلاف ذلك، List<T> على طول الطريق (للمحلي الخاص بك T)...

بالنسبة إلى تلك الحالات (النادرة) حيث لا تعرف نوع الأمام الأول (ولا يمكن استخدام الأجهزة)، حتى List<object> هو أكثر فائدة من ArrayList (IMO).

نصائح أخرى

يجب عليك دائما استخدام List<TypeOfChoice> (تم تقديمها في .NET 2.0 مع Generics) لأنها محكومة وأسرع من ArrayList (لا غير الضروري للملاكمة / إلغاء الصندوق).

الحالة الوحيدة التي يمكنني التفكير فيها في المكان الذي يمكن أن تكون فيه قائمة صفيف مفيدة إذا كنت بحاجة إلى واجهة مع الأشياء القديمة (.NET 1.1) أو تحتاج إلى مجموعة من الكائنات من نوع مختلف وتحميل كل شيء ككائن - ولكن يمكنك القيام بهذا الأخير مع List<Object> وهو عموما أفضل.

منذ القائمة هي فئة عامة، سأميل إلى استخدام قائمة دائما.

قائمة ArrayList هي فئة .NET 1.x (لا تزال متاحة وصالحة رغم ذلك)، ولكنها ليست "مكتوبة" / عام، لذلك ستحتاج إلى الحصول على العناصر من "الكائن" مرة أخرى إلى النوع المطلوب؛ في حين عند استخدام القائمة، ليس عليك القيام بذلك.

استخدم قائمة حيث ممكن من أي وقت مضى. لا أستطيع أن أرى أي استخدام إلى قائمة الصورة عند وجود قائمة ذات أداء عالية.

ArrayList هي هيكل بيانات أكبر سنا. إذا كنت تستخدم .NET 2.0 أو أعلى دائما استخدام قائمة عندما يحتاج الصفيف إلى إجراء عناصر من نفس النوع. استخدام القائمة على القوائم على تحسين كل من الأداء وسهولة الاستخدام.

كما قال آخر. يجب عليك استخدام القائمة العامة، دائما تقريبا عندما تعرف أن النوع (C # هو لغة مكتوبة قوية)، وطرق أخرى عند القيام دروس متعددة الجنس / الفئات أو الأشياء الأخرى مثل هذا.

إذا كنت لا ترغب في استخدام استعلامات LinQ، فأنت لا تحتاج إلى استخدام القائمة. إذا كنت ترغب في استخدام، يجب عليك تفضيل القائمة.

تم تقديم Generics in .NET 2.0.If كنت تستخدم الإصدارات السابقة من .NET، ثم يمكنك استخدام قائمة الصفيف آخر يمكننا الذهاب مع القائمة العامة نفسها. قائمة الصفيف هي المهتورة ولا تقدم سلامة من النوع الأفضل وأيضا إنشاء مشاكل الملاكمة وإلغاء تثبيت.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top