Как обрабатывать только занятые элементы массива?
Никак не убрать, можно только спрятать с глаз долой (использовать Linq).
Сколько у тебя там объектов? Можешь использовать кодирование чисел двоичным кодом. Число будет считаться состоянием массива. Если объект знает свою позицию в массиве, то при его удалении, можно перевести прошлое число(состояние) в двоичный код, поменять нужную 1 на 0 и обратно преобразовать в число. Поменять можно сложением или вычитанием, но нужно быть уверенным, что все изменения производятся через отдельный класс, свойства должны быть защищены и меняться через методы.