我有以下代碼。 abc
和newdata
是字符串變量。它所做的是將一些文本添加到變量abc並放入變量測試中。使用「?」運營商
var test = abc + "?ds=" + newdata;
我想改變這個代碼,以便如下:
"?ds=" + newdata;
僅添加如果在字符串ABC沒有問號。
有沒有一種簡單的方法可以做到這一點。我正在考慮使用「?」運營商,所以我可以做這個內聯,但我不知道如何使用它。
我有以下代碼。 abc
和newdata
是字符串變量。它所做的是將一些文本添加到變量abc並放入變量測試中。使用「?」運營商
var test = abc + "?ds=" + newdata;
我想改變這個代碼,以便如下:
"?ds=" + newdata;
僅添加如果在字符串ABC沒有問號。
有沒有一種簡單的方法可以做到這一點。我正在考慮使用「?」運營商,所以我可以做這個內聯,但我不知道如何使用它。
是的,你應該能夠使用三元操作符-?
- 爲此。
我想你想添加「?」如果不存在的話。
var test = abc + (abc.Contains("?") ? "" : "?") + "ds=" + newdata;
但如果你真的只想增加"?ds=" + newdata;
如果沒有問號已經存在,這應該這樣做
var test = abc + (abc.Contains("?") ? "" : "?ds=" + newdata);
你想這是什麼
var test = abc + (abc".Contains("?") ? "?ds=" + newdata : string.Empty);
這將追加"?ds="
當且僅當abc
包含?否則,它只是附加空字符串。
這是功能上等同於該代碼
var test = abc;
if (!abc.Contains("?"))
test += "?ds=" + newData;
因此,選擇你的毒藥,無論是一個是完全清晰,做同樣的事情。
檢查你的'是否'條件。我認爲你的意思是`if(!abc.Contains(「?」))`。在三元運算符的情況下,我更喜歡「if」。它對我來說看起來更清潔。 – 2011-12-17 05:04:26
你可以試試這個,
var test;
if (!abc.Contains("?"))
{
test =String.Format("{0}?ds={1}",abc,newdata);
}
小心三元運算符。對於某些事情來說沒問題,但對我個人來說,這正在接近使用IF語句切換到的位置。當你去重構代碼或添加新的功能時,我發現複雜的三元語句是一種責任。請記住,離開公司後維護代碼的人是一個精神病殺手,他知道你住在哪裏。 – 2011-12-17 05:03:56