Как сохранить 0 при переводе в 16-ричную систему c#

Я хочу перевести цвет RGB в HEX. Для этого использую Convert.ToString():

Console.WriteLine("HEX - #{Convert.ToString(color.R, 16)} {Convert.ToString(color.G, 16)} {Convert.ToString(color.B, 16)}"));

Если запихнуть туда цвет rgb(9, 9, 0), то выйдет 990, а нужно 090900.

Как сразу впихнуть нули, но при этом легально? Или это только ifом и конкатенацией сотворять?


Ответы (1 шт):

Автор решения: Alexander Petrov

Использовать int.ToString(format), где формат "X2" - hex в два символа.

Console.WriteLine($"HEX - #{color.R.ToString("X2")} {color.G.ToString("X2")} {color.B.ToString("X2")}");

Можно записать короче:

Console.WriteLine($"HEX - #{color.R:X2} {color.G:X2} {color.B:X2}");
→ Ссылка