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"];
Тогда он будет каждый раз отдавать новое значение в переменную, пока существуют данные в списке, а потом он его изменит.
Код не тестил, но должно работать)