C# Как использовать список(List<string>) в другом кубике?

  • Автор темы Автор темы zenno60
  • Дата начала Дата начала

zenno60

Пользователь
Регистрация
09.05.2016
Сообщения
99
Реакции
1
Баллы
8
Кубик 1
Код:
Развернуть Свернуть Копировать
string str = project.Variables["stringMulti"].Value;
List<string> stringlist = new List<string>();
stringlist.Add(str);

Кубик 2
Код:
Развернуть Свернуть Копировать
foreach (string item in stringlist)
{
  // listContentproject.Variables["listContent"].Value = item.ToString() + "\r\n";
  project.Variables["listContent"].Value = item.ToString() + "\r\n";  
  project.SendInfoToLog(item.ToString(), true);
  
  return project.Variables["listContent"].Value ;
}

Как использовать список(List<string>) в другом кубике?

Если "да", то как?
Подозреваю, что "List<string> stringlist " нужно объявить глобально.
Но как это сделать?
 
Последнее редактирование:
ну используй тогда зеновский список без привязки если ты C# разрываешь на много кубиков
ну или создай в общем коде private или public list
 
ну или создай в общем коде private или public list
Это как?

Сделал так "public List<string> stringlist = new List<string>();"
Код:
Развернуть Свернуть Копировать
string str = project.Variables["stringMulti"].Value;
public List<string> stringlist = new List<string>();
stringlist.Add(str);

не работает
 
Это как?

Сделал так "public List<string> stringlist = new List<string>();"
Код:
Развернуть Свернуть Копировать
string str = project.Variables["stringMulti"].Value;
public List<string> stringlist = new List<string>();
stringlist.Add(str);

не работает

в общем коде, это в using

2018-12-22_024216.png
 
  • Спасибо
Реакции: zenno60
Как использовать список(List<string>) в другом кубике?
Использовать project.Context. В зенке есть только string переменные. Но это не удобно, т.к. иногда надо передавать целиком объекты из одно экшена в другой, тот же List<string>.

https://help.zennolab.com/en/v5/zen...ctModel.IZennoPosterProjectModel~Context.html

В одном экшене
List<string> stringlist = new List<string>();
project.Context["myList"] = stringlist;

В другом
List<string> stringlist = (List<string>)project.Context["myList"];

"myList" - это имя, по нему из project.Context получаем нужный объект, главное, чтобы имя было уникальное, в пределах одного шаблона.
Таким способом можно передавать любые объекты между экшенами.
И не только, project.Context передается и в подпроекты.

upload_2018-12-21_23-27-47.png
 
Кажись понял...
"Проект в проекте"?
 
в общем коде, это в using
Я правильно вас понял?
Не работает.
"
Компиляция кода Ошибка в действии "CS0103" "Имя "stringlist" отсутствует в текущем контексте". [Строка: 1; Cтолбец: 1]
Компиляция кода Ошибка в действии "CS0103" "Имя "stringlist" отсутствует в текущем контексте". [Строка: 2; Cтолбец: 1]

"
 
что именно не работает
что в коде то ?
 
CommonCode.stringlist = new List<string>();
 
  • Спасибо
Реакции: zenno60
CommonCode.stringlist = new List<string>();
Сделал как на скрине.
Ошибка:
"
Компиляция кода Ошибка в действии "CS0120" "Для нестатического поля, метода или свойства "ZennoLab.OwnCode.CommonCode.stringList" требуется ссылка на объект". [Строка: 1; Cтолбец: 1]

"
 

Вложения

  • 2018-12-21_22-22-41.png
    2018-12-21_22-22-41.png
    61,4 KB · Просмотры: 623
ну так напиши public static, только смотри что в таком случае он будет один для всех потоков
 
  • Спасибо
Реакции: zenno60

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