سؤال

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

على سبيل المثال أريد أن تعيين { 1, 2, 3, "string1", "string2" } إلى arraylist.أنا أعرف مصفوفات أخرى يمكنك جعل المهمة مثل:

int[] IntArray = {1,2,3};

هل هناك طريقة مشابهة هل هذا arraylist?حاولت addrange الطريقة ولكن متعرج الأسلوب لا تنفذ ICollection واجهة.

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

المحلول

مجموعة قائمة المنشئ الذي يقبل ICollection ، والتي يتم تنفيذها من قبل مجموعة الصف.

object[] myArray = new object[] {1,2,3,"string1","string2"};
ArrayList myArrayList = new ArrayList(myArray);

نصائح أخرى

اعتمادا على نسخة من C# تستخدمه لديك خيارات مختلفة.

C# 3.0 وقد جمع المهيآت, التفاصيل في سكوت قو بلوق

هنا هو مثال على المشكلة الخاصة بك.

ArrayList list = new ArrayList {1,2,3};

وإذا كنت تهيئة كائن مجموعة ، أن معظم المنشئات التي تأخذ مكونات مماثلة إلى AddRange ، على الرغم مرة أخرى كما كنت ذكرت هذا قد لا يكون خيارا.

تعليقاتكم يعني اخترت ArrayList لأنه كان أول عنصر وجدت.

على افتراض كنت ببساطة تبحث عن قائمة من الأعداد الصحيحة ، وربما هذا هو أفضل طريقة للقيام بذلك.

List<int> list = new List<int>{1,2,3};

و إذا كنت تستخدم C# 2.0 (التي الأدوية ، ولكن ليس جمع المهيآت).

List<int> list = new List<int>(new int[] {1, 2, 3});

على الرغم int[] الشكل قد لا تكون صحيحة في الإصدارات القديمة ، قد تضطر إلى تحديد عدد العناصر في الصفيف.

أفترض أنك لا تستخدم C# 3.0 ، الذي جمع المهيآت.إذا كنت لا ازعجت حول النفقات العامة من خلق temp مجموعة, هل يمكن أن تفعل مثل هذا 1.1/2.0:

ArrayList list = new ArrayList(new object[] { 1, 2, 3, "string1", "string2"});

(نوع من الرد على سؤالي ولكن...)

أقرب شيء لقد وجدت ما أريد هو الاستفادة من ArrayList.محول الطريقة:

object[] values = { 1, 2, 3, "string1", "string2" };
ArrayList AL = new ArrayList();
AL = ArrayList.Adapter(values);

//or during intialization
ArrayList AL2 = ArrayList.Adapter(values);

وهذا يكفي على ما أريد ولكن كنت آمل أن يتم ذلك في سطر واحد دون خلق مؤقتة مجموعة باسم شخص آخر قد اقترح.

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