2014-11-27 2 views
0

Есть ли способ вставить nullable int с нулями, как вы можете с обычным int?Как я могу вставить нулевые int с нулями?

myInt.ToString("D3"), кажется, не работает на nullale Интса, но для моего текущего проекта, я чувствую, что мне нужно использовать обнуляемый int для того, чтобы получить значение null в моем массиве вместо 0 в качестве значения по умолчанию.

+4

Почему вы не просто использовать 'myInt.Value.ToString ("D3")'? –

+0

Это похоже на работу. Огромное спасибо. Я все еще довольно новичок в программировании, поэтому я пытаюсь понять, как я иду. В настоящее время я пытаюсь работать над проектом, где я начинаю с int? [] IntArray [50], и если его значение по умолчанию равно 0, оно будет просто выводиться как null (пустое). Моя проблема заключается в том, что я хочу, чтобы выходные данные (3 цифры) дополнялись ведущими 0, следовательно, ToString («D3»), но я не могу понять, как сделать так, чтобы он мог выводить формат I а также нулевые значения, если значение по-прежнему равно нулю. Есть ли способ сделать это? – Jeff

ответ

0

Вы должны выполнить это действие на величину:

myInt.Value.ToString("D3") 

Пример:

int? myInt = 3; 
Console.WriteLine(myInt.Value.ToString("D3")); // Outputs 003 
+2

и что он выводит, если 'myInt' является' null'? –

+0

@TimSchmelter Правильно, он просто должен это учитывать. Мой пример не является исчерпывающим. –

2

int никогда ведущие нули, он просто имеет значение. Строковое представление ìnt может иметь их. Вы можете использовать оператор нуль-коалесцирующий для преобразования обнуляемого-INT 0, если оно не имеет никакого значения:

int? nullableInt = null; 
string number = (nullableInt ?? 0).ToString("D3"); // 000 

или использовать String.PadLeft:

number = (nullableInt ?? 0).ToString().PadLeft(3, '0'); 
4

Это потому, что int? на самом деле Nullable<T> где T является int здесь.

Вызов ToString будет называть это на Nullable struct, а не int. Nullable<T> не знает о перегрузках ToString, которые имеют int.

Вы должны получить целое значение первого:

myInt.GetValueOrDefault(0).ToString("D3") 
Смежные вопросы