С использованием "?" оператор - PullRequest
0 голосов
/ 17 декабря 2011

У меня есть следующий код. abc и newdata являются строковыми переменными. Он добавляет текст в переменную abc и помещает его в переменную test.

var test = abc + "?ds=" + newdata;

Я хочу изменить этот код так, чтобы следующее:

"?ds=" + newdata;

добавляется только в том случае, если в строке abc нет знака вопроса.

Есть ли простой способ сделать это? Я думал использовать «?» оператор, чтобы я мог просто сделать это встроенным, но я не уверен, как это использовать.

Ответы [ 3 ]

2 голосов
/ 17 декабря 2011

Да, вы должны быть в состоянии использовать троичный оператор - ? - для этого.

Я думаю, вы хотите добавить "?"если ничего не существует

1 голос
/ 17 декабря 2011

То, что вы хотите, это

var test = abc + (abc".Contains("?") ? "?ds=" + newdata : string.Empty);

Это добавит "?ds=" тогда и только тогда, когда abc содержит?.В противном случае он просто добавляет пустую строку.

Это функционально эквивалентно этому коду

var test = abc;

if (!abc.Contains("?"))
   test += "?ds=" + newData;

Так что выбирайте свой яд, любой из них разборчив и делает то же самое.

0 голосов
/ 17 декабря 2011

Вы можете попробовать это,

var test; 

if (!abc.Contains("?"))
    {
        test =String.Format("{0}?ds={1}",abc,newdata);
    }
...