Kак взять строку из списка последнюю?

Lextor

Client
Регистрация
19.06.2020
Сообщения
172
Благодарностей
19
Баллы
18
добрый вечер :-)
как взять строку из списка последнюю? - возможно только взять строку первую :(
 

zarufakis

Client
Регистрация
22.03.2019
Сообщения
1 702
Благодарностей
1 078
Баллы
113
Получить количество строк
От полученного числа отнять 1
Взять строку под номером №
 
  • Спасибо
Реакции: Lextor

Lextor

Client
Регистрация
19.06.2020
Сообщения
172
Благодарностей
19
Баллы
18
Получить количество строк
От полученного числа отнять 1
Взять строку под номером №
благодарю за идею. Вы правы так можно решить тоже но я сейчас параллельно искал и наткнулся на более короткий способ. Кому интересно вот решениe:

Операции над списком > получить строку > Указать номер: end

Hу или вариант от @zarufakis
 

Traff

Client
Регистрация
19.09.2022
Сообщения
20
Благодарностей
14
Баллы
3
Получить количество строк
От полученного числа отнять 1
Взять строку под номером №

Ну тут либо кубиками, либо:

C#:
IZennoList list = project.Lists["list"];
int last = list.Count - 1;
return list[last];
 
  • Спасибо
Реакции: Lextor

Lextor

Client
Регистрация
19.06.2020
Сообщения
172
Благодарностей
19
Баллы
18

vrb-by

Client
Регистрация
27.02.2016
Сообщения
128
Благодарностей
8
Баллы
18
а с удалением?
 

vrb-by

Client
Регистрация
27.02.2016
Сообщения
128
Благодарностей
8
Баллы
18
Получение последней строки из списка с удалением:

C#:
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("Список пустой");
}
 
  • Спасибо
Реакции: name7778

xASZx

Client
Регистрация
24.11.2017
Сообщения
70
Благодарностей
15
Баллы
8
C#:
string line = project.Lists["list"].Last();
project.Lists["list"].Remove(line);
return line;
 

ZULI

Client
Регистрация
09.09.2020
Сообщения
423
Благодарностей
165
Баллы
43
А что за прикол удалять? Я как правило получаю кол-во строк и потом по очереди каждую беру, так и исходный файл в целостности (вдруг чего) и воспроизвести можно повторно если нужно.
 

Traff

Client
Регистрация
19.09.2022
Сообщения
20
Благодарностей
14
Баллы
3

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
А что за прикол удалять? Я как правило получаю кол-во строк и потом по очереди каждую беру, так и исходный файл в целостности (вдруг чего) и воспроизвести можно повторно если нужно.
безопасный одновременный доступ из нескольких потоков
 

ZULI

Client
Регистрация
09.09.2020
Сообщения
423
Благодарностей
165
Баллы
43
безопасный одновременный доступ из нескольких потоков
Ну я беру строку, делаю лок файл, следующий потом смотрит что есть лок и берет следующую. Вроде норм пока работает. А там конечно кому как нравится. Я пришел к такой схеме.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Ну я беру строку, делаю лок файл, следующий потом смотрит что есть лок и берет следующую. Вроде норм пока работает. А там конечно кому как нравится. Я пришел к такой схеме.
подробнее
 

ZULI

Client
Регистрация
09.09.2020
Сообщения
423
Благодарностей
165
Баллы
43
Вроде все уже выше описал.
Я делаю не взять строку с удалением, а получаю кол-во строк, потом прохожу от 0 до N строк, после взятия N строки создаю лок файл, типа Run/1.lock, Run/2.lock и тп, следующий потом берет следующую строку, проверяет есть ли файл лока, есть есть, берет следующую и т.д. с последним потоком файлы лока затираются (ну либо после каждого прохода стирается свой).
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Вроде все уже выше описал.
Я делаю не взять строку с удалением, а получаю кол-во строк, потом прохожу от 0 до N строк, после взятия N строки создаю лок файл, типа Run/1.lock, Run/2.lock и тп, следующий потом берет следующую строку, проверяет есть ли файл лока, есть есть, берет следующую и т.д. с последним потоком файлы лока затираются (ну либо после каждого прохода стирается свой).
и всё это ты вынужден обезопашивать через код с помощью лок-конструкции lock (object)?
 

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