C# Неявное преобразование типа "string" в "bool" невозможно

  • Автор темы Автор темы Dorian_Gray
  • Дата начала Дата начала

Dorian_Gray

Client
Регистрация
21.01.2018
Сообщения
227
Реакции
341
Баллы
63
В C# не сильно силен, но проект требует сторонних библиотек. Подскажите как из переменной "myString" в которой содержится {-Variable.myString-}{-String.Tab-} {-Variable.myVK-}{-String.Tab-}
Проверить наличие {-Variable.myString-} и в зависимости от него наличия выполнить if. Причем должны быть не значения переменных, а они сами текстом.
Код:
Развернуть Свернуть Копировать
    Convert.ToBoolean(Convert.ToInt32(project.Variables["myString"].Value)); // конвертируем текстовую переменную в булеву
    bool myString = (Path.GetExtension(project.Variables["Categories_Excel"].Value) == "{-Variable.qwertrty-}") ? "true" : "false"; // проверяем на содержание в переменной Categories_Excel текста {-Variable.qwertrty-} подскажите как сделать не значения этой переменной а наличия этого текста

if (myString)
{
    ws1.Column(2).Hidden = true;
}
else
{
    ws1.Column(2).Hidden = false;
}
Благодарю
 
после того как убрал кавычки
 

Вложения

  • 1.png
    1.png
    12,2 KB · Просмотры: 418
х.з для чего первая строка так и не понял
и макросы в коде не пишутся
 
х.з для чего первая строка так и не понял
и макросы в коде не пишутся
В том то и дело что это не макрос, это значение, которое находится в переменной и нужно взять именно его, а не то что содержится в макросе.
Первая строка по идее конвертирует тип стринг в тип бул
 
да, первая строка никакой роли не играет.
надо так сразу:
C#:
Развернуть Свернуть Копировать
bool myString = (project.Variables["Categories_Excel"].Value == project.Variables["qwertrty"].Value);


и далее уже проверять что туда попало
 
да, первая строка никакой роли не играет.
надо так сразу:
C#:
Развернуть Свернуть Копировать
bool myString = (project.Variables["Categories_Excel"].Value == project.Variables["qwertrty"].Value);


и далее уже проверять что туда попало
Тут ситуация немного иная. В переменной проекта Categories_Excel содержится примерно такой текст "{-Variable.qwertrty-}{-String.Tab-} {-Variable.test-}{-String.Tab-} {-Variable.qq-}{-String.Tab-}" так вот нужно чтобы переменная myString проверяла есть ли содержание именно текста, а не макроса. И если содержит заданный текст то дается true или false и дальнейшие действия. Так вот как проверить Regex на содержание в переменной Categories_Excel "{-Variable.qwertrty-}", а не значения которое содержится в {-Variable.qwertrty-}.
Благодарю
 
Код:
Развернуть Свернуть Копировать
if(project.Variables["Categories_Excel"].Value.Contains("Проверочный текст"))
{
    // Какой то код
}
else
{
    // Какой то код
}
 
Код:
Развернуть Свернуть Копировать
if(project.Variables["Categories_Excel"].Value.Contains("Проверочный текст"))
{
    // Какой то код
}
else
{
    // Какой то код
}
Спасибо, код работает, но только если вместо "{-Variable.qwertrty-}" содержится 1 или любое другое название, а не макрос. Как такового текста {-Variable.qwertrty-}, который содержится в переменной Categories_Excel найти не может и выдает ошибку компиляции т.е. если в переменой Categories_Excel содержится макрос, код не работает. Но в ней содержатся именно макросы и в ходе реализации нужно получать не значение макросов, а проверять наличие их самих в переменной как текста.
 
Каким образом в переменную Categories_Excel заносятся данные?
 
через С#
Код:
Развернуть Свернуть Копировать
string str = project.Variables["qi"].Value;
str = Regex.Replace(str, @"Номер", "{-Variable.qwerty-=}");
str = Regex.Replace(str, @"=", "");
return str;
Положить в переменную Categories_Excel
 
через С#
Код:
Развернуть Свернуть Копировать
string str = project.Variables["qi"].Value;
str = Regex.Replace(str, @"Номер", "{-Variable.qwerty-=}");
str = Regex.Replace(str, @"=", "");
return str;
Положить в переменную Categories_Excel
Вы этот код сами писали?
 
Решение найдено, благодарю всех кто откликнулся. Если кому то пригодится, берем код выше и дублируем
Код:
Развернуть Свернуть Копировать
string str = project.Variables["qi"].Value;
str = Regex.Replace(str, @"Номер", "1");
return str;
Положить в переменную qq
переменные, которые складывали в начале в Categories_Excel далее с помощью кода Oleg1987
Код:
Развернуть Свернуть Копировать
if(project.Variables["qq"].Value.Contains("1"))
{
    // Какой то код
}
else
{
    // Какой то код
}
Вот и все палки, если кто знает более элегантное решение- подскажите.
 

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