C# сниппет. Как взять строку из списка с удалением?

Статус
Закрыто для дальнейших ответов.

Dima_External

Пользователь
Регистрация
23.10.2017
Сообщения
75
Благодарностей
4
Баллы
8
Приветствую!

В шаблоне очень много работы со списками, хочется оптимизировать работу шаблона и перевести взятие строки из списка при помощи сниппета.

В коде не силен, кто может помочь примером?
 

WebBot

Client
Регистрация
04.04.2015
Сообщения
1 721
Благодарностей
1 377
Баллы
113

Dima_External

Пользователь
Регистрация
23.10.2017
Сообщения
75
Благодарностей
4
Баллы
8
Код:
lock(SyncObjects.ListSyncer){
   project.Variables["proxy"].Value = project.Lists["proxy"][0].Trim();
   project.Lists["proxy"].RemoveAt(0);
}
Спасибо, все работает!
Подскажи, пожалуйста, а как можно взять рандомный элемент из списка, но без удаления?
 
  • Спасибо
Реакции: Биржевик

inotoxic

Client
Регистрация
20.04.2015
Сообщения
354
Благодарностей
162
Баллы
43
Код:
// СПИСОК - взять рандомно строку с удалением
var list = project.Lists["List"];
Random rnd = new Random();
lock (SyncObjects.ListSyncer) {
    int r = rnd.Next(list.Count);
    project.Variables["Var"].Value = list[r];
    // Удаление строки
    list.RemoveAt(r); // удаление взятой строки
}
закомментируй или удали строку
list.RemoveAt(r);
будет брать без удаления
 

Dima_External

Пользователь
Регистрация
23.10.2017
Сообщения
75
Благодарностей
4
Баллы
8
Код:
// СПИСОК - взять рандомно строку с удалением
var list = project.Lists["List"];
Random rnd = new Random();
lock (SyncObjects.ListSyncer) {
    int r = rnd.Next(list.Count);
    project.Variables["Var"].Value = list[r];
    // Удаление строки
    list.RemoveAt(r); // удаление взятой строки
}
закомментируй или удали строку
list.RemoveAt(r);
будет брать без удаления
Благодарю!

Большое спасибо все, кто помог.
 

WebBot

Client
Регистрация
04.04.2015
Сообщения
1 721
Благодарностей
1 377
Баллы
113
Последнее редактирование:
Статус
Закрыто для дальнейших ответов.

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