c # Когда я должен использовать List и когда я должен использовать arraylist? - PullRequest
45 голосов
/ 07 апреля 2009

Как видно из названия, когда мне следует использовать List и когда мне следует использовать ArrayList?

Спасибо

Ответы [ 8 ]

87 голосов
/ 07 апреля 2009

Основное время использования ArrayList в .NET 1.1

Кроме этого, List<T> полностью (для вашего местного T) ...

Для тех (редких) случаев, когда вы заранее не знаете тип (и не можете использовать дженерики), даже List<object> более полезен, чем ArrayList (IMO).

12 голосов
/ 07 апреля 2009

Вы всегда должны использовать List<TypeOfChoice> (введено в .NET 2.0 с обобщениями), так как это TypeSafe и быстрее, чем ArrayList (без ненужной упаковки / распаковки).

Единственный случай, когда я мог бы подумать о том, где ArrayList может быть полезен, это если вам нужно взаимодействовать со старым материалом (.NET 1.1) или вам нужен массив объектов другого типа, и вы загружаете все как объект - но вы могли бы сделайте последнее с List<Object>, что, как правило, лучше.

5 голосов
/ 07 апреля 2009

Поскольку List является универсальным классом, я бы всегда использовал List.

ArrayList - это класс .NET 1.x (все еще доступный и допустимый, хотя), но он не является «типизированным» / универсальным, поэтому вам нужно будет преобразовывать элементы из «объекта» обратно в нужный тип; тогда как при использовании List вам не нужно этого делать.

4 голосов
/ 07 апреля 2009

Используйте список, где это возможно. Я не вижу никакого смысла в ArrayList, когда существует высокопроизводительный список.

3 голосов
/ 07 апреля 2009

ArrayList - более старая структура данных .NET. Если вы используете .NET 2.0 или выше, всегда используйте List, когда массив должен содержать элементы одного типа. Использование List над ArrayList повышает производительность и удобство использования.

0 голосов
/ 04 апреля 2013

Generics был представлен в .Net 2.0. Если вы используете более ранние версии .Net, то вы можете использовать Array List, иначе мы сможем использовать сам Generic List. Список массивов является устаревшим и не обеспечит лучшей безопасности типов, а также создаст проблемы с упаковкой и распаковкой. Но Общий список не будет.

0 голосов
/ 12 декабря 2011

Если вы не хотите использовать Linq Queries, вам не нужно использовать List. Если вы хотите использовать, то вы должны предпочесть List.

0 голосов
/ 07 апреля 2009

Как сказал другой. Вы должны использовать универсальный список, почти всегда, когда вы знаете тип (C # - язык со строгим типом), и другие способы, когда вы делаете полиморфные / наследуемые классы или другие подобные вещи.

...