Я получил функцию, которая возвращает Collection<string>
и которая рекурсивно вызывает себя, чтобы в конечном итоге вернуть один большой Collection<string>
.
Теперь мне просто интересно, как лучше всего объединить списки? Collection.CopyTo()
копирует только в строку [], и использование цикла foreach()
кажется неэффективным. Однако, так как я также хочу отфильтровать дубликаты, я чувствую, что получу foreach, который вызывает Contains()
на Collection
.
Интересно, есть ли более эффективный способ иметь рекурсивную функцию, которая возвращает список строк без дубликатов? Мне не нужно использовать Collection
, это может быть практически любой подходящий тип данных.
Единственное исключение, я связан с Visual Studio 2005 и .net 3.0, поэтому нет LINQ.
Редактировать: Для пояснения: Функция выводит пользователя из Active Directory, просматривает прямые отчеты пользователя, а затем рекурсивно просматривает прямые отчеты каждого пользователя. Таким образом, конечным результатом является список всех пользователей, которые находятся в «цепочке команд» данного пользователя. Так как это выполняется довольно часто и в настоящее время занимает 20 секунд для некоторых пользователей, я ищу способы улучшить его. Кэширование результата за 24 часа также есть в моем списке, но я хочу посмотреть, как его улучшить, прежде чем применять кеширование.