Как избавиться от фараоновских пирамид кубиков?

JanCarlo

Client
Регистрация
04.03.2018
Сообщения
353
Благодарностей
40
Баллы
28
Боль:


Делал на скорую руку копипастой, но это как сами понимаете капец.
Подскажите пожалуйста, как на Шарпе составить код который выполняет следующие функции? :

Есть 25 переменных (самый длинный столбик), каждая переменная IFом проверяется на пустоту, если переменная пустая то из определенного списка, берется одна рандомная строка и ложиться в эту переменную. И так далее, проверяются все перечисленные переменные и если они пустые - заполняются рандомными строками взятыми из указанных списков.

То есть все эти фараоновские пирамиды можно в один кубик засунуть.

Заранее спасибо
 
  • Спасибо
Реакции: molotok

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 683
Баллы
113
афигеть.... o_O
списки, таблицы не айда ?
делай таблицу для переменных и храни данные там. там же в таблице можешь и прописать имя нужного списка.
в цикле берешь ячейку с данными, по счетчику цикла, и с соседнего столбца имя списка. если пустые данные, подключаешь нужный список и забираешь что надо. и записываешь в таблицу. вот в все.
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 758
Благодарностей
2 392
Баллы
113
Код:
Random r = new Random(); // Создали рандом
project.Lists["Список 1"].Add("Строка 1"); // Заполнили список значениями
project.Lists["Список 1"].Add("Строка 2"); // Заполнили список значениями
project.Lists["Список 1"].Add("Строка 3"); // Заполнили список значениями
project.Lists["Список 1"].Add("Строка 4"); // Заполнили список значениями

// Описали функцию которая будет принимать имя списка и имя переменной и будет возвращать либо переменную либо случайную строку (если переменна имеет пустое значение)
//  listName - имя списка
// varName - имя переменной
Func<string, string, string> data =    delegate(string listName, string varName) {
    string tempOut = string.Empty;
    if(string.IsNullOrEmpty(project.Variables[varName].Value)) {
        int countLines = project.Lists[listName].Count;
        if(countLines > 0) {
            tempOut = project.Lists[listName][r.Next(countLines)];
        }
        else {
            tempOut = project.Variables[varName].Value;
        }
    }
    else {
        tempOut = project.Variables[varName].Value;
    }
    return tempOut;
};


project.Variables["temp"].Value = data("Список 1", "temp"); // Вызываем функцию для каждой переменной...
project.SendInfoToLog(project.Variables["temp"].Value); // Выводим в лог содержимое переменной
project.Variables["temp"].Value = string.Empty; // Очистим переменную...
 
  • Спасибо
Реакции: TwistDanceR и JanCarlo

TwistDanceR

Активный пользователь
Регистрация
30.05.2019
Сообщения
479
Благодарностей
200
Баллы
43
Хоспаде...))))
 

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