В чем разница между List ArrayList и Array?

В чем разница и в каких случаях, что лучше использовать?
  • Вопрос задан
  • 26510 просмотров
Решения вопроса 1
Mrrl
@Mrrl
Заводчик кардиганов
Размер Array задаётся при создании, и за ним надо специально следить. Доступ к нему чуть быстрее, чем к List. Можно получить указатель на элемент через fixed. Если в Array лежат структуры - можно изменить их поля: A[x].B=c;
Элемент массива можно передавать в функцию как ref или out.
Преимущество List в том, что его размер меняется автоматически при добавлении элемента. Менять поля структур в нём нельзя, передавать элементы по ссылке тоже нельзя.
ArrayList - не generic тип (он пришёл ещё из первой версии C#), поэтому состоит только из объектов. С появлением List стал не очень нужен, разве что для случаев, когда действительно нужно хранить объекты разных типов - но и тогда List< object > его полностью заменит.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@dmitryKovalskiy
программист средней руки
С такими вопросами принято ходить на MSDN и RSDN. Различий масса, но что когда использовать вам только опыт скажет... ну или Senior.
Если по ключевым моментам. - массив создается синтаксисом типа int[] a = new int[count].
Коллекции создаются иначе. Для массива как правило логически оправдано обращение по индексу, Для List чаще используется перебор всего(foreach) или выборки элементов по признакам через LINQ. Зачем нужен ArrayList я не знаю. У него есть один ключевой недостаток - он хранит в себе только object. Сие значит что туда можно нафигачить объектов любых типов(сам List строго типизирован на этапе создания), но и значит что нужно хоть примерно представлять что и как там хранится, а также использовать МНОГО приведений типов. Пусть коллеги дополнят меня еще какими-то пунктами.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы