Если все, что вам действительно нужно, это перебрать результаты, достаточно вернуть IEnumerable<string>
из вашей функции.
Это предотвращает привязку вызывающего к любомуконкретная структура данных ... все, что им нужно, это что-то может быть повторено.Ваша реализация тогда может свободно использовать и возвращать любую структуру, которая имеет смысл - List<string>
, HashSet<string>
, string[]
... это на самом деле не имеет значения.На самом деле, вы можете создать структуру данных, отличную от простого списка, если вам так нужно - при условии, что он реализует интерфейс IEnumerable<string>
, на который ваши абоненты не влияют.
Я думаю, что нужно рассмотреть другой вопрос:является ли массив хорошей структурой для внутреннего использования для создания набора имен файлов.Является ли коллекция фиксированного размера, но изменяемая, действительно лучшей конструкцией для вашей работы?Часто такие операции не знают, сколько элементов они будут обрабатывать - в этом случае имеет смысл иметь коллекцию переменного размера (например, List<>
или HashSet<>
).Зачем тогда нести расходы на преобразование такой коллекции в массив, чтобы просто ее вернуть?