Допустим, мой ArrayList получил 20 элементов. Что ж, когда-нибудь во время выполнения я захочу, чтобы в нем было только 10 элементов, поэтому остальные 10 индексов (от 9 до 19) вообще не существуют. Как мне это сделать?
Почему вы вообще используете неуниверсальные коллекции?Вместо этого используйте List<T>.И вы можете использовать метод Remove() на нем.
List<T>
Remove()
Поскольку вы работаете с ArrayLists, а не с Arrays, просто используйте ArrayList.Remove () для одной детали и ArrayList.RemoveRange (x, list.Count-x) для диапазона.
Если вы хотите избежать использования пространства памяти для элементов, которых нет, вы можете попробовать использовать метод TrimToSize:
http://msdn.microsoft.com/en-us/library/system.collections.arraylist.trimtosize.aspx
Это минимизирует накладные расходы массива, ограничивая емкость текущими предметами.
Если они уже существуют, вам нужно удалить их, а затем вызвать этот метод.
Я не уверен, что именно вы ищете, так что больше деталей было бы здорово.
Если вы просто хотите удалить элементы без изменения емкости, вы можете использовать ArrayList.RemoveRange:
http://msdn.microsoft.com/en-us/library/system.collections.arraylist.removerange.aspx
arrayList.RemoveRange (10, list.Count-10)
Этот метод может использоваться с любым другим допустимым диапазоном, если вы, например, хотите удалить первые десять элементов.