Не думаю, что у вас есть большой выбор, кроме как использовать класс, реализующий IEnumerable . Даже если бы свойство DataSource было достаточно умным, чтобы взять скалярный объект, оно, вероятно, преобразовало бы его внутренне в вектор.
Однако я бы рассмотрел использование простого массива, а не List , так как это приведет к меньшему выделению памяти. Если вам не нравится синтаксис массива (а также для повышения читабельности), вы можете использовать вспомогательный метод:
T [] DataSourceHelper :: ToVector (T скаляр) {
вернуть новый T [] {скаляр};
}