Работа со списками

kasper

Client
Регистрация
01.04.2012
Сообщения
139
Благодарностей
15
Баллы
18
Работа со списками [снипет]

Подскажите пожалуйста.
Логика такая. Из списка list1 берется строка в переменную (с удалением). Если взять строку не получается (строки кончились), то добавить все строки из списка list2 в list1
 

evgen_po

Client
Регистрация
27.08.2013
Сообщения
848
Благодарностей
532
Баллы
93
Получаете строку из списка 1, и выполняете свою логику, до тех пор пока они есть. Когда строки из списка 1 закончатся действие шаблона из экшена Получить строку пойдет по неудачному выходу. Подставляете туда шаг - работа со списками, добавить данные из списка. Выбираете там, чтобы добавились данные из списка 2, в конец. Вот и все.
 
  • Спасибо
Реакции: kasper

kasper

Client
Регистрация
01.04.2012
Сообщения
139
Благодарностей
15
Баллы
18
Получаете строку из списка 1, и выполняете свою логику, до тех пор пока они есть. Когда строки из списка 1 закончатся действие шаблона из экшена Получить строку пойдет по неудачному выходу. Подставляете туда шаг - работа со списками, добавить данные из списка. Выбираете там, чтобы добавились данные из списка 2, в конец. Вот и все.
В данный момент именно таки делаю:-)
Тема создана в разделе "снипеты" и мне хотелось бы осуществить свою задачу с помощью снипетов на C#, чтобы все действия производились в одном экшене.
Данной связкой пользуюсь очень часто и было бы удобно просто копировать один экшн из другого шаблона, ну и плюс ко всему - уменьшение количества действий в шаблоне, компактность.
Подправил название темы.
 

kasper

Client
Регистрация
01.04.2012
Сообщения
139
Благодарностей
15
Баллы
18
Вот пример, как сейчас:
0_df7af_8fc2ce88_XL.png
Кстати, разработчикам - наверное надо подправить комментарий, когда добавляются данные из списка list2 (на примере), чтобы там было "Добавить данные из списка list2"
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
var list1= project.Lists["Список 1"];
var list2= project.Lists["Список 2"];

do{
string first = list1[0];////что то вот вы делаете с первой строкой
list1.Remove();//А теперь удаляете
}while(list1.Count>0);
project.Lists["Список 1"]= project.Lists["Список 2"];


Только все равно сниппет бестолковый получится))) т.к. он выполняется внутри себя, и не поддерживает значение переменных во время выполнения проекта...
Т.е. вам надо обрабатывать каждую строку внутри сниппета, а раз вы его сами не написали, то думаю это будет не по зубам... Возможно, если вы часто к нему обращаетесь можно попробовать сделать так

var list1= project.Lists["Список 1"];
var list2= project.Lists["Список 2"];

if(list1.Count>0)
project.Variables["переменная какая то"].Value = list[0];
list1.Remove();
else
project.Lists["Список 1"]= project.Lists["Список 2"];

Тогда он будет каждый раз отдавать новое значение в переменную, пока существуют данные в списке, а потом он его изменит.

Код не тестил, но должно работать)
 
  • Спасибо
Реакции: kasper

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