По производительности всегда лучше возвращать один объект.
Но, с точки зрения дизайна, это действительно зависит от кода, который использует ваш класс.Если вы хотите принять проектное решение о том, что все методы должны возвращать списки, потребительский код всегда может написать код, подобный следующему:
List<Foo> listOfObjects = yourClassInstance.select();
// or
List<Foo> listOfObjects = yourClassInstance.select_one();
foreach(Foo foo in listOfObjects)
{
// process the selected objects..
}
Таким образом, это действительно зависит от вас, в зависимости от того, что вас волнует больше всего.
Но имейте в виду, что у List есть накладные расходы, потому что внутри он всегда создает массив типа T и другие вспомогательные члены.Это становится важным, если вы ожидаете, что потребители будут вызывать код, который создает list-of-one много раз, так как он создает много списков и, следовательно, использует больше памяти и может работать медленнее.