Абсолютно.
Обычная коллекция, такая как ArrayList, неявно хранит объекты.
Это означает, что при этом:
ArrayList list = new ArrayList();
list.Add(5);
list.Add("FooBar");
Является законным кодом. Это создает несколько проблем.
- Как правило, вы не хотите хранить разные типы в одной коллекции, и проверять время компиляции это хорошо.
- Когда вы сохраняете тип значения (например, целое число 5 выше), он должен быть помещен в ссылочный тип, прежде чем его можно будет сохранить в коллекции.
- При чтении значения вы должны привести его обратно от Object к нужному типу.
Однако вы устраняете все эти проблемы, используя общий набор:
List<int> list = new List();
list.Add(5);
// Compile Time Error.
list.Add("FooBar")
Вы также получаете поддержку intellisense при работе непосредственно с индексами коллекции, а не просто с общим "object" intellisense.