Значение переменной - это название другой переменной, в которую нужно вставить значение третьей переменной. [C#]

material

Client
Регистрация
23.03.2021
Сообщения
329
Благодарностей
124
Баллы
43
Помогите решить задачу на C#. Название темы запутанное, ниже пример исходных данных и какой результат требуется, после работы сниппета.

"Имя переменной" = "Значение переменной"

Исходные данные:
"variable_1" = "текст"
"variable_2" = "variable_3"


Результат:
"variable_3" = "текст"
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 794
Благодарностей
2 466
Баллы
113
Описал подробнее, как я это вижу...
Подправьте пожалуйста, потому что скорее всего Вы хотели что-то другое (участвовать должна ещё variable_2 но не понятно где её место должно быть).
C#:
project.Variables["variable_3"].Value = "текст";
project.Variables["variable_2"].Value = "variable_1";
string var1 =project.Variables["variable_2"].Value; // Переменная, которая содержит значение название другой переменной
project.SendInfoToLog(string.Format("Имя: {0} Значение: {1}", var1, project.Variables[var1].Value));

string var3 = "variable_3"; // Третья переменная, значение которой нужно вставить в вторую
project.SendInfoToLog(string.Format("Имя: {0} Значение: {1}", var3, project.Variables[var3].Value));

project.Variables[var1].Value = project.Variables[var3].Value; // Собственно сама операция
project.SendInfoToLog(string.Format("Переменной: {0} Присвоено значение: {1} C переменной {2}", var1, project.Variables[var3].Value,var3));
93060
До:
93063
После:
93062
 
Последнее редактирование:
  • Спасибо
Реакции: material и Alexbrush

djaga

Administrator
Команда форума
Регистрация
26.04.2020
Сообщения
554
Благодарностей
1 136
Баллы
93
Помогите решить задачу на C#. Название темы запутанное, ниже пример исходных данных и какой результат требуется, после работы сниппета.

"Имя переменной" = "Значение переменной"

Исходные данные:
"variable_1" = "текст"
"variable_2" = "variable_3"


Результат:
"variable_3" = "текст"
Возможно вы захотите проверить, есть ли уже переменная с таким именем.)
Создание переменой с проверкой на существование:
string value = "текст"; // project.Variables["name"].Value если нужно брать из переменных
string nameVariable = "variable_3"; // project.Variables["name"].Value если нужно брать из переменных

if (project.Variables.Keys.Contains(nameVariable))
{
    project.SendInfoToLog($"Переменная: {nameVariable} существует");
    project.Variables[nameVariable].Value = value;
}
else
{
    project.SendInfoToLog($"Создаем переменную {nameVariable} c значением {value}");
    object obj = project.Variables;
    obj.GetType().GetMethod("QuickCreateVariable")?.Invoke(obj, new object[] { nameVariable });
    project.Variables[nameVariable].Value = value;
}
 
Последнее редактирование:
  • Спасибо
Реакции: material

material

Client
Регистрация
23.03.2021
Сообщения
329
Благодарностей
124
Баллы
43
Описал подробнее, как я это вижу...
Подправьте пожалуйста, потому что скорее всего Вы хотели что-то другое (участвовать должна ещё variable_2 но не понятно где её место должно быть).
C#:
project.Variables["variable_3"].Value = "текст";
project.Variables["variable_2"].Value = "variable_1";
string var1 =project.Variables["variable_2"].Value; // Переменная, которая содержит значение название другой переменной
project.SendInfoToLog(string.Format("Имя: {0} Значение: {1}", var1, project.Variables[var1].Value));

string var3 = "variable_3"; // Третья переменная, значение которой нужно вставить в вторую
project.SendInfoToLog(string.Format("Имя: {0} Значение: {1}", var3, project.Variables[var3].Value));

project.Variables[var1].Value = project.Variables[var3].Value; // Собственно сама операция
project.SendInfoToLog(string.Format("Переменной: {0} Присвоено значение: {1} C переменной {2}", var1, project.Variables[var3].Value,var3));
Посмотреть вложение 93060
До:
Посмотреть вложение 93063
После:
Посмотреть вложение 93062
Возможно вы захотите проверить, есть ли уже переменная с таким именем.)
Создание переменой с проверкой на существование:
string value = "текст"; // project.Variables["name"].Value если нужно брать из переменных
string nameVariable = "variable_3"; // project.Variables["name"].Value если нужно брать из переменных

if (project.Variables.Keys.Contains(nameVariable))
{
    project.SendInfoToLog($"Переменная: {nameVariable} существует");
    project.Variables[nameVariable].Value = value;
}
else
{
    project.SendInfoToLog($"Создаем переменную {nameVariable} c значением {value}");
    object obj = project.Variables;
    obj.GetType().GetMethod("QuickCreateVariable")?.Invoke(obj, new object[] { nameVariable });
    project.Variables[nameVariable].Value = value;
}
Огромное вам спасибо BAZAg и djaga, всё работает так как нужно, вторая вариация даже лучше подойдет, на случай, если переменной в проекте нет необходимой. Отпишу обоим в ЛС, попробую отправить немного монет в качестве благодарности.
 
  • Спасибо
Реакции: BAZAg и djaga

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 794
Благодарностей
2 466
Баллы
113
Огромное вам спасибо BAZAg и djaga, всё работает так как нужно, вторая вариация даже лучше подойдет, на случай, если переменной в проекте нет необходимой. Отпишу обоим в ЛС, попробую отправить немного монет в качестве благодарности.
Рад, что Ваша проблема решена.
Вы мне ничего не должны!
В случае необходимости - обращайтесь.
Хорошего дня!
 
  • Спасибо
Реакции: material

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