Создать список с целыми числами от 1 до 99999999...

socsecret.ru

Client
Регистрация
30.09.2017
Сообщения
346
Благодарностей
209
Баллы
43
Имеем две переменные:
min = 1
max = 99999999
Они могут меняться. Каким образом создать список, где каждая строка будет на 1 больше, начиная от min и заканчивая max?
Пробовал цикл
C#:
var result = "";

for (int i = Convert.ToInt32(project.Variables["min"].Value); i <= Convert.ToInt32(project.Variables["max"].Value); i++) {
    result = i + Environment.NewLine + result;
}

return result;
Но при большом значении max я так и не смог дождаться окончания выполнения C# кубика.
 

socsecret.ru

Client
Регистрация
30.09.2017
Сообщения
346
Благодарностей
209
Баллы
43
Проблему решил. Скорость была низкой из-за того, что в коде выше я пытался сформировать сначала переменную из чисел, и только потом из переменной создавал список. А надо было сразу добавлять по одному числу в список, вот так:

C#:
var list = project.Lists["List"];

for (int i = Convert.ToInt32(project.Variables["min"].Value); i <= Convert.ToInt32(project.Variables["max"].Value); i++) {
    list.Add(i);
}
 
  • Спасибо
Реакции: Czerdo

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 788
Благодарностей
2 453
Баллы
113
Вмесьл 0 и 100 подавать нужный диапазон.
C#:
int min = int.Parse(project.Variables["min"].Value.Trim());
int max = int.Parse(project.Variables["max"].Value.Trim());
project.Lists["List"].AddRange(Enumerable.Range(min, max).Select(x=>x.ToString()).ToList());
C#:
List<int> list = Enumerable.Range(0, 100).ToList();

return string.Join(" ", list.Select(x=>x.ToString())); // вывод списка
93509

Проблему решил. Скорость была низкой из-за того, что в коде выше я пытался сформировать сначала переменную из чисел, и только потом из переменной создавал список. А надо было сразу добавлять по одному числу в список, вот так:

C#:
var list = project.Lists["List"];

for (int i = Convert.ToInt32(project.Variables["min"].Value); i <= Convert.ToInt32(project.Variables["max"].Value); i++) {
    list.Add(i);
}
Проблема в том, что на каждой итерации цикла Вы конвертируете значения из строки в число, что делать нельзя.
Также такие задачи в цикле лучше не делать - при большом диапазоне - это много времени.
 
Последнее редактирование:
  • Спасибо
Реакции: Reysh и socsecret.ru

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