我有一个数字,我需要转换成一个字符串。首先我用了这个:

Key = i.ToString();

但我意识到它的排序顺序很奇怪所以我需要用0填充它。我怎么能这样做呢?


当前回答

Try:

Key = i.ToString("000000");

不过,就我个人而言,我想看看是否不能直接对整数进行排序,而不是对字符串表示进行排序。

其他回答

Try:

Key = i.ToString("000000");

不过,就我个人而言,我想看看是否不能直接对整数进行排序,而不是对字符串表示进行排序。

如果你喜欢固定宽度,比如10个数字,可以这样做

Key = i.ToString("0000000000");

用你喜欢的数字替换。

i = 123将导致Key = "0000000123"。

有关字符串的一些示例,请参阅c#中的字符串格式化。格式

实际上这是一个更好的int格式的例子

String.Format("{0:00000}", 15);          // "00015"

或者使用字符串插值:

$"{15:00000}";                           // "00015"

use:

i.ToString("D10")

看到Int32。ToString (MSDN)和标准数字格式字符串(MSDN)。

或者使用String.PadLeft。例如,

int i = 321;
Key = i.ToString().PadLeft(10, '0');

将导致0000000321。尽管字符串。PadLeft对负数无效。

看到字符串。PadLeft (MSDN)。

非常简单:

Key = i.ToString("D2");

D代表“十进制数”,2代表要打印的位数。