أفضل حاوية سلسلة: StringCollection، مجموعة <سلسلة>، قائمة <سلسلة>، ArrayList، ..؟
-
21-08-2019 - |
سؤال
ما هي الحاوية أكثر ملائمة لمجرد سلاسل عقد في بعض مجموعة مع الحدود العليا غير محددة سلفا، والتي طول غير معروف على انها الخلق.
لرمز بسيط مثل:
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
.