Все методы одинаковы для выпадающего списка, но имеют свои плюсы и минусы. Вот несколько коротких ответов:
Метод 1 тесно связан с элементами управления списком. Я не предпочитаю использовать метод 1, потому что он не обеспечивает такой большой гибкости, если в будущем мне придется привязывать данные к сетке, это не будет работать.
Скорость: этот метод будет немного медленнее, если существует слишком много ListItems. Потому что вам придется конвертировать бизнес-объекты в объект ListItem, чтобы заполнить раскрывающийся список.
Method2 - хороший вариант, если вы решили работать с привязкой к данным TwoWay. Но он не поддерживается в элементах управления и механизме по умолчанию asp.net, поэтому он будет использоваться напрасно с выпадающим списком.
Скорость: этот метод будет немного быстрее, потому что BindableList реализует IEnumerable, и он будет повторяться один раз при вызове DataBind.
Метод 3 предпочтительно является хорошим вариантом, поскольку он является универсальным и расширяемым, а также может работать с любым привязываемым объектом в .net.
Speed: этот метод будет таким же, как Method2, поскольку List также реализует IEnumerable, и он будет повторяться один раз при вызове DataBind.