В чем разница между ArrayList и List в VB.NET.NET: ArrayList против Список
ответ
ArrayLists по существу устарели, поскольку они нетипизированы - вам нужно использовать приводы с ними - и они медленнее и меньше пространства для типов значений, потому что они требуют, чтобы элементы были в штучной упаковке.
Общие списки были введены с .Net 2.0 и это путь. Часто List лучше, чем массив, с несколькими минусами.
Поскольку эти коллекции являются частью библиотеки базового класса .Net, этот совет также относится к C# и к любому языку .Net, который поддерживает generics - это не относится к VB.NET.
Кроме того, List намного эффективнее с точки зрения использования памяти. См. Http://blogs.msdn.com/b/joshwil/archive/2004/04/13/112598.aspx – PapillonUK 2011-06-20 09:41:49
Список можно использовать дженерики так, что только объекты определенных типов могут быть помещены в него, так что вы можете иметь дополнительные и вы можете сократить время обработки из-за бокса и распаковки. Аррайалист не может этого использовать. Почти во всех случаях вы хотите использовать список, а не Arraylist.
Дженерики были введены с .NEt 2.0, но эти классы существовали и до этого. Есть ли разница в том, как эти классы внутренне написаны. – MOZILLA 2008-12-13 17:51:53
Если не существует другого класса List, о котором я не знаю, это неправильно. Полное пространство имен List - System.Collections.Generic.List, что означает, что оно было специально добавлено для использования с Generics. – Kibbee 2008-12-14 01:53:20
Список является общей реализацией ArrayList. ArrayList хранит все объекты как System.Object, который вам нужен, а затем наносится на соответствующий тип. ArrayLists являются гетерогенными, List может хранить только один тип объектов - этот тип поставляется в качестве его общего параметра.
List<string> strList; // can store only strings
List<int> intList; // can store only ints
ArrayList someList; // can store anything
ArrayList позволяет написать следующее:
Dim customers as new ArrayList
Dim c as new Customer
Dim m as new Manager
customers.Add(c)
customers.Add(m)
'This will cause an exception '
For each c as Customer in customers
console.writeline(c.Name)
Next
Перечня (Клиент) позволяет только объект типа клиента и типов, которые наследуют от клиента, так что вы не можете сделать такие ошибки.
Даже если вам нужно поместить объекты несвязанных типов в одну и ту же коллекцию, List (Of Object) является лучшим выбором, поскольку он делает явным, что вы имеете дело с разными типами.
ArrayLists еще более неэффективны при использовании на 64-битной памяти для хранения примитивных элементов из-за 64-битных ссылок на память в отличие от 32-битных ссылок на 32-битных машинах и бокса.
Смотрите это для более подробной информации: http://blogs.msdn.com/joshwil/archive/2004/04/13/112598.aspx
Ссылки на документы: [ `ArrayList`] (http://msdn.microsoft.com/en-us/library/system.collections.arraylist.aspx), [`List`] (http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx) – 2013-05-13 17:13:31