Я знаю, что это может быть очень глупый вопрос, но как ученик мне всегда нравится узнавать что-то новое. В любом случае, вот краткое утверждение If
:
string test = "It's a test";
string test2;
if (test != "")
{
test2 = test;
}
else
{
test2 = "It's null";
}
Примечание. Я знаю, что Regex
также можно использовать для проверки того, пуста ли строка: Regex.IsMatch( "[A-TVWZ]", test)
. Кроме того, я знаю, что могу использовать SELECT CASE
В приведенном выше коде я проверяю, пуста ли строка test
или нет. Если это так, то test2
получает одно значение, если нет, test2
получает другое значение.
Мой вопрос: есть ли более короткий / элегантный / быстрый способ сделать это? Я имею в виду одну строку, которая проверяет, пуста ли строка или нет, и передает требуемое значение в test2
? Я знаю, что альтернативные решения могут занять такое же время выполнения, но мне просто интересно, есть ли для этого альтернатива с одной / двумя строками?
Разработать
Я хочу проверить, пуста строка или нет. Для каждого случая другая строка получает определенные значения ...
@GiladGreen, я ищу более короткую альтернативу, чем инструкция if
Пустая строка - это не то же самое, что и null. И что значит быстрее? Вы не получите ничего "быстрее", чем оператор if, проверяющий простое значение.
Ваш образец не будет компилироваться, потому что ваши фигурные скобки не в том месте.
@Plutonix, здесь не нужно усложнять .... Я могу задать вам тот же вопрос, если вы хотите использовать regex
в каком-то случае вместо циклов или операторов it ..... Я спросил, потому что хотел знать, есть ли любые более короткие альтернативы
@zackraiyan какое отношение имеет регулярное выражение к чему-либо? Что вы на самом деле здесь спрашиваете? Почему вы не используете string.IsNullOrEmpty()
? У меня так много вопросов ...
Что ж, в ответе указана единственная версия короче. Однако внутри он выполняет тот же код exavt и, следовательно, не работает быстрее - если это действительно проблема.
@zackraiyan вы упомянули "быстрее" в своем вопросе. «быстрее» синоним «быстрее»
quicker означает (или, по крайней мере, я имел в виду) быстрый код .. например, однострочное регулярное выражение может делать именно то, что может делать 10-строчный цикл (в случае строк)
Вы можете использовать тернарный оператор:
string test = "It's a test";
string test2 = (test != "") ? test : "0-length string";
Как это «быстрее»?
Он не будет выполняться быстрее, но это меньше строк кода, о чем, похоже, и был вопрос.
@maccettura, потому что он инициализируется и объявляет одновременно? p.s. Используйте string.IsNullOrEmpty (string), потому что "" некрасиво: P
Мне интересно, почему test
инициализируется рано ... почему бы просто не поместить его внутри самого if? Является ли это параметром?
@zackraiyan нет, я только что сообщал вам, что вы можете упростить свою логику. Полностью. Всегда лучше избегать проблем, чем искать их обходные пути.
var test = "It's a test";
var test2 = (!string.IsNullOrEmpty(test)) ? test : "It's null";
В частности, для новичков будет полезно, если вы дадите небольшое пояснение к своему ответу. Небольшой комментарий к тернарному оператору сделает ваш ответ более полезным.
вы можете
test != ""
и вместе с тернарным оператором:test2 = test != "" ? test : "It's null";