благодарю за идею. Вы правы так можно решить тоже но я сейчас параллельно искал и наткнулся на более короткий способ. Кому интересно вот решениe:Получить количество строк
От полученного числа отнять 1
Взять строку под номером №
Получить количество строк
От полученного числа отнять 1
Взять строку под номером №
IZennoList list = project.Lists["list"];
int last = list.Count - 1;
return list[last];
благодарюНу тут либо кубиками, либо:
C#:IZennoList list = project.Lists["list"]; int last = list.Count - 1; return list[last];
IZennoList list = project.Lists["list"];
int last = list.Count - 1;
if(last >= 0)
{
string lastValue = list[last]; // Получаем последний элемент
list.RemoveAt(last); // Удаляем его из списка
return lastValue; // Возвращаем значение
}
else
{
throw new InvalidOperationException("Список пустой");
}
А что за прикол удалять? Я как правило получаю кол-во строк и потом по очереди каждую беру, так и исходный файл в целостности (вдруг чего) и воспроизвести можно повторно если нужно.а с удалением?
Например почты) Да вариантов уймаА что за прикол удалять?
безопасный одновременный доступ из нескольких потоковА что за прикол удалять? Я как правило получаю кол-во строк и потом по очереди каждую беру, так и исходный файл в целостности (вдруг чего) и воспроизвести можно повторно если нужно.
Ну я беру строку, делаю лок файл, следующий потом смотрит что есть лок и берет следующую. Вроде норм пока работает. А там конечно кому как нравится. Я пришел к такой схеме.безопасный одновременный доступ из нескольких потоков
подробнееНу я беру строку, делаю лок файл, следующий потом смотрит что есть лок и берет следующую. Вроде норм пока работает. А там конечно кому как нравится. Я пришел к такой схеме.
Вроде все уже выше описал.подробнее
и всё это ты вынужден обезопашивать через код с помощью лок-конструкции lock (object)?Вроде все уже выше описал.
Я делаю не взять строку с удалением, а получаю кол-во строк, потом прохожу от 0 до N строк, после взятия N строки создаю лок файл, типа Run/1.lock, Run/2.lock и тп, следующий потом берет следующую строку, проверяет есть ли файл лока, есть есть, берет следующую и т.д. с последним потоком файлы лока затираются (ну либо после каждого прохода стирается свой).