Я бы не стал прыгать и говорить, что они устарели или будут удалены в ближайшее время.
Это правда, что вам следует избегать использования неуниверсальных коллекций, если у вас нет причины , а не , чтобы не использовать универсальную версию. Тысячи строк унаследованного (не очень унаследованного) кода все еще распространяются (и будут на годы), которые поддерживают неуниверсальные коллекции, такие как ArrayLists. Поскольку это были коллекции only в .NET 1.0 и 1.1, он широко использовался (и использовался) в течение года.
Мне все еще иногда приходится взаимодействовать со старым O / R-преобразователем, написанным на .NET 1.1, который возвращает объекты IList. У меня есть метод, который делает преобразование в общий список <>, который не эффективен, но это так.
И если вам нужно хранить разные объекты в одном и том же массиве (странно, но возможно), вам понадобится неуниверсальная коллекция. Штраф за бокс и распаковку - это то, что вам все равно придется заплатить.
Не бойтесь использовать их, если чувствуете, что должны.