使用 ”?”操作者

时间:2011-12-17 04:53:45

标签: c# ternary-operator

我有以下代码。 abcnewdata是字符串变量。它的作用是将一些文本添加到变量abc并进入变量测试。

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

我想更改此代码以便以下内容:

"?ds=" + newdata;
仅当字符串abc中没有问号时才添加

有没有一种简单的方法可以做到这一点。我当时想用“?”运算符所以我可以直接执行此操作,但我不确定如何使用它。

3 个答案:

答案 0 :(得分:2)

是的,你应该能够使用三元运算符 - ? - 为此。

我认为你想要添加“?”如果不存在的话。

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

但如果你真的只想添加"?ds=" + newdata;如果没有问号,那就应该这样做

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

答案 1 :(得分:1)

你想要的是这个

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

当且仅当"?ds="包含?时,这将附加abc。否则,它只是附加空字符串。

这在功能上等同于此代码

var test = abc;

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

所以选择你的毒药,其中一个是完全清晰的,并做同样的事情。

答案 2 :(得分:0)

你可以试试这个,

var test; 

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