(4) Согласен. И лучше элемент отбора искать по-другому, а не обращаться к нему по индексу
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший