Само по себе оно не «устарело». Он "устарел" как автомобиль '70 '80 ранних 90-х. Если бы мне пришлось выбирать между List<Object>
и ArrayList
, существует ОЧЕНЬ ОЧЕНЬ МАЛЕНЬКАЯ возможность, я бы использовал ArrayList ... Забудь об этом ... Он не реализует IEnumerable<Object>
, поэтому для использования Linq я бы должны использовать OfType<Object>()
.
Для примера:
var aaa = new ArrayList();
var aaaa = aaa.OfType<object>().Where(p => p != null);
var bbb = new List<object>;
var bbbb = bbb.Where(p => p != null);
Кто-то, наконец, проголосовал против моего ответа, поэтому я добавлю кое-что к нему: -)
Если бы вы спросили: "Вы бы использовали какую-нибудь неуниверсальную коллекцию", мой ответ был бы другим. Hashtable обладает интересным свойством:
Hashtable является поточно-ориентированным для использования несколькими нитями чтения и одним потоком записи. Потокобезопасен для многопоточного использования, когда только один из потоков выполняет операции записи (обновления), что позволяет выполнять чтение без блокировки при условии, что записывающие устройства сериализуются в Hashtable.
Таким образом, есть места, где Hashtable
должно быть лучше, чем lock + Dictionary
или ConcurrentDictionary
(но вам придется его тестировать)