أفضل حاوية سلسلة: StringCollection، مجموعة <سلسلة>، قائمة <سلسلة>، ArrayList، ..؟

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

سؤال

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

لرمز بسيط مثل:

var list = new SomeContainer(); // size is unknown
for()/foreach()/do()/while() // any loop
{
  list.Add(string);
}

هل StringCollection كما جمع الأمثل لسلسلة، أو مجرد Collection<string> أو List<string> أو ArrayList؟ ما هو الفرق بينهما؟

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

المحلول

لما تحتاج إليه، List<string> هو على الارجح الاكثر تنوعا. كان StringCollection مفيد في 1.1، عندما (بدون الأدوية) كنت في حاجة فئات معينة للمجموعات كتبته. Collection<string> هو مفيد إذا كنت ترغب في فئة فرعية لتوفير التحقق من صحة الخ.

وفي كلتا الحالتين، في 3.5، LINQ سيوفر الكثير من وسائل إضافية بالنسبة لهم - ولكن من دون LINQ، List<T> ديه المزيد من الميزات (Find، Sort، الخ)

نصائح أخرى

وA List<T> سيكون أكثر كفاءة.

والطبقة Collection<T> هو مجرد غلاف لنوع آخر من القائمة، منشئ parameterless initialises وCollection<T> مع List<T>.

وهناك ArrayList هو أساسا نفس List<object>، لذلك سيكون لديك للادلاء العناصر لString عند قراءة منه.

وA StringCollection هو مجرد نوع المجمع آمن لArrayList.

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