2013-03-19 137 views
-1

如何處理string.format中的語句? 我需要檢查,如果x = 0,x = 1或X = NULL 我知道我可以用兩個數值做,但我不知道如何添加另一個這裏還有statmentstring.format if else語句

String.Format("{0}", x == 0 ? "True" : "False") 
+0

'x'的類型是什麼? (如果它是'int',它不能爲空......) – 2013-03-19 19:04:29

+1

爲什麼當結果是* True *或False?字符串時使用'string.Format'?你真的需要一個更完整的例子,然後我們才能幫到你... – 2013-03-19 19:05:10

+0

嘿喬恩...我在我的網格列上渲染我的標題。因此,我需要用我的json數據格式化標題 – EagleFox 2013-03-19 19:07:54

回答

4
String.Format("{0}", x == null ? "<null>": (x == 0 ? "True" : "False")) 
+0

謝謝亞歷克斯...這是我所需要知道的(格式)沒有所有額外的...所有這一切感謝您的快速反應 – EagleFox 2013-03-19 19:15:25

2

怎麼加另一種說法在這裏

嵌套?:是可能的,但幾乎總是一個壞主意。

直接回答,假設xint?是隻用()

String.Format("{0}", x == null ? "Null" : (x.Value == 0 ? "True" : "False")) 
+0

我不會說它總是*一個壞主意。我已經看到它的效果非常好 - 但我不會這麼做*在這裏的方法調用... – 2013-03-19 19:05:39

+0

我已經把'幾乎'放在前面了。我的選擇也不是那麼好,但也是由於對x類型的困惑。 – 2013-03-19 19:09:41

+0

+1注意,這是一個壞主意 – 2013-03-19 19:13:42

2

我不喜歡三元IFS的嵌套。在一般的情況下,並根據您使用C#的版本,你可以試試這個:

var values = new Dictionary<int?, string>() 
{ 
    { 0, "zero"}, 
    { 1, "one"}, 
    { 2, "two"}, 
    { null, "none"} 
}; 

String.Format("{0}", values[x]); 

IMO,表始終擊敗複雜,如果超過3個值的語句。

+0

看起來像一個矯枉過正 – alex 2013-03-19 19:08:37

+0

與更多然後2 - 3值更具可讀性,如果是三元的。嘗試添加另一個案例三元,如果看到更清潔。其實不要加另一個,只是用它來表達這4個案例。 – 2013-03-19 19:10:13

+0

謝謝你這個答案以及Zdeslav,但爲我的簡單目的,我接受亞歷克斯的答案 – EagleFox 2013-03-19 19:13:18