Как говорится в заголовке, когда следует использовать List
и когда следует использовать ArrayList
?
Спасибо
Как говорится в заголовке, когда следует использовать List
и когда следует использовать ArrayList
?
Спасибо
Основное время использования ArrayList
- в .NET 1.1
Кроме этого, List<T>
полностью (для вашего локального T
)...
Для тех (редких) случаев, когда вы не знаете тип вверх (и не можете использовать generics), даже List<object>
более полезен, чем ArrayList
(IMO).
Вы всегда должны использовать List<TypeOfChoice>
(представленный в .NET 2.0 с generics), поскольку это TypeSafe и быстрее, чем ArrayList
(без ненужного бокса/распаковки).
Только в том случае, когда я мог бы подумать о том, где ArrayList может быть вам полезен, вам нужно будет взаимодействовать со старыми вещами (.NET 1.1) или вам нужен массив объектов разного типа, и вы загружаете все как объект, но можете сделайте последнее с List<Object>
, которое обычно лучше.
Поскольку List - это общий класс, я бы всегда использовал List.
ArrayList - это класс .NET 1.x(все еще доступный и действительный, хотя), но он не "типизирован" /generic, поэтому вам нужно будет бросать элементы из "объекта" обратно в нужный тип; тогда как при использовании List вы не должны этого делать.
Использовать Список, где это возможно. Я не вижу никакого использования в ArrayList, когда существует высокопроизводительный список.
ArrayList - это более старая структура данных .NET. Если вы используете .NET 2.0 или выше, всегда используйте List, когда массиву необходимо хранить элементы того же типа. Использование List over ArrayList улучшает производительность и удобство использования.
Как сказал другой. Вы должны использовать общий список List, почти всегда, когда знаете тип (С# - язык с сильным типом) и другие способы, когда вы выполняете классы полиморфности/наследования или другие подобные вещи.
Если вы не хотите использовать запросы Linq, вам не нужно использовать List. Если вы хотите использовать, вы должны предпочесть список.
Generics был введен в .Net 2.0. Если вы используете более ранние версии .Net, вы можете использовать список массивов, который мы можем использовать с самим общим списком. Список массивов является устаревшим и не обеспечивает лучшей безопасности типов, а также создает проблемы с боксом и распаковкой. Но общий список не будет.