Проект в проекте списки?

valera-k

Client
Регистрация
26.12.2020
Сообщения
135
Благодарностей
13
Баллы
18
Доброго времени суток,
переменные передаются в подпроект и обратно, а списки возможно передать?
Через файл не подходит для многопотока или одновременной работы нескольких одинаковых проектов.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 458
Благодарностей
8 682
Баллы
113
Доброго времени суток,
переменные передаются в подпроект и обратно, а списки возможно передать?
Через файл не подходит для многопотока или одновременной работы нескольких одинаковых проектов.
Добрый день.
Список можно объединить в переменную и передать в подпроект и там развернуть снова в список и работать с ним.
Кубик "Операции над списком - Объединить элементы списка".
Кубик "Обработка текста - В список".
 
Последнее редактирование:
  • Спасибо
Реакции: izubr, djaga и valera-k

djaga

Client
Регистрация
26.04.2020
Сообщения
505
Благодарностей
1 052
Баллы
93
Доброго времени суток,
переменные передаются в подпроект и обратно, а списки возможно передать?
Через файл не подходит для многопотока или одновременной работы нескольких одинаковых проектов.
Привет. Можно ещё через project.Context. Assemblies Documentation
Проект в проекте (Вложенные проекты)

Не забудьте поставить галочку:
97899


Результат (кликабельно):
1664296697209.png

Решение:
Обратите внимание на выделенные строки. Остальное для наглядности.
Кубик C# в основном шаблоне:
project.Context["list"] = project.Lists["список"].ToList();

// Вывод для наглядности
project.SendInfoToLog("Вывод из основного шаблона:");
foreach(string s in project.Context["list"])
{
    project.SendInfoToLog(s);
}
Кубик C# во вложенном проекте:
List<string> list = project.Context["list"];

// Вывод для наглядности
project.SendInfoToLog($"Вывод из вложенного шаблона:");
foreach(string s in list)
{
    project.SendInfoToLog($"{s}");
}

// Пример: Добавляю в список значения для дальнейшей работы
project.Lists["список_Шаблон_2"].AddRange(project.Context["list"]);
Чтобы работать с многопотоком, можно под каждый поток создавать своё имя Context или через lock

Если возникнут вопросы пишите в личные сообщения, вся информация есть в подписи ↓

Приложил шаблоны для тестов. ↓ Скачать нужно оба и положить рядом в одну папку.
 

Вложения

Последнее редактирование:

Deisler

Client
Регистрация
26.10.2019
Сообщения
482
Благодарностей
183
Баллы
43
А как вернуть из вложенного шаблона измененный список в основной шаблон ? Теми же шагами не работает
Привет. Можно ещё через project.Context. Assemblies Documentation
Проект в проекте (Вложенные проекты)

Не забудьте поставить галочку:
Посмотреть вложение 97899

Результат (кликабельно):
Посмотреть вложение 97896

Решение:
Обратите внимание на выделенные строки. Остальное для наглядности.
Кубик C# в основном шаблоне:
project.Context["list"] = project.Lists["список"].ToList();

// Вывод для наглядности
project.SendInfoToLog("Вывод из основного шаблона:");
foreach(string s in project.Context["list"])
{
    project.SendInfoToLog(s);
}
Кубик C# во вложенном проекте:
List<string> list = project.Context["list"];

// Вывод для наглядности
project.SendInfoToLog($"Вывод из вложенного шаблона:");
foreach(string s in list)
{
    project.SendInfoToLog($"{s}");
}

// Пример: Добавляю в список значения для дальнейшей работы
project.Lists["список_Шаблон_2"].AddRange(project.Context["list"]);
Чтобы работать с многопотоком, можно под каждый поток создавать своё имя Context или через lock

Если возникнут вопросы пишите в личные сообщения, вся информация есть в подписи ↓

Приложил шаблоны для тестов. ↓ Скачать нужно оба и положить рядом в одну папку.


UPD - Прочитал комментарий от Sergodjan https://zennolab.com/discussion/threads/proekt-v-proekte-spiski.106830/post-707738
Вопрос снимается, спасибо
 
Последнее редактирование:
  • Спасибо
Реакции: Sergodjan

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)