2013-03-19 3 views
-1

Как бы сделать, если инструкция в string.format? мне нужно проверить, если х = 0, х = 1 или х = нуль Я знаю, что я могу сделать с двумя значениями, но я не уверен, как добавить еще еще Постулаты здесьstring.format if else statement

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

Какой тип 'x'? (Если это 'int', это не может быть null ...) –

+1

И почему вы используете' string.Format', когда результат * просто * строка 'True' или' False'? Вам действительно нужен более полный пример, прежде чем мы сможем вам помочь ... –

+0

эй Джон ... Я передаю свой заголовок на столбе сетки. Поэтому мне нужно отформатировать заголовок с помощью моих json-данных – EagleFox

ответ

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

Спасибо, Алекс ... это все, что мне нужно было знать (формат) без всех дополнительных услуг ... спасибо за быстрый ответ – EagleFox

2

как добавить еще одна статута здесь

Вложение ?: возможно, но почти всегда плохая идея.

Прямой ответ, предполагая, что x является int? является просто использовать ():

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

Я бы не сказал, что это всегда * плохая идея. Я видел, что это очень эффектно, но я бы не сделал этого * внутри метода вызова здесь ... –

+0

Я уже поставил «почти» перед этим. Моя альтернатива не так уж велика, но это также из-за путаницы в отношении типа x. –

+0

+1 за замечание, что это плохая идея –

2

Мне не нравится вложенности трехкомпонентных МФС. В общем случае и в зависимости от версии C# вы используете, вы можете попробовать это:

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

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

IMO, столы всегда бить сложными, если заявления более 3 значений.

+0

Похож на перегиб – alex

+0

с более чем 2- 3 значения, это более читаемо, чем троичный if. Попробуйте добавить другой случай к троичному, если и посмотрите, что является более чистым. Собственно, не добавляйте другого, просто выражайте эти 4 дела с ним. –

+0

Спасибо за этот ответ, а также Здеслав, но по моей простой цели я принимаю ответ Алекса – EagleFox