string.format if else语句

string.format if else语句

问题描述:

如何处理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

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

谢谢亚历克斯...这是我所需要知道的(格式)没有所有额外的...所有这一切感谢您的快速反应 – EagleFox 2013-03-19 19:15:25

怎么加另一种说法在这里

嵌套?:是可能的,但几乎总是一个坏主意。

直接回答,假设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

我不喜欢三元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