优化我的添加前缀零功能



下面是我的函数,如您所见,我想在引号no前面加上前导零,如果我所做的陈述似乎不是最好的方法,我想知道是否有人有更好的方法来做到这一点,我相信会有。

多谢

        int QuoteNo = currQuotetNo + 1;
        string strQuoteNo = "";
        if (QuoteNo.ToString().Length > 1)
        {
            strQuoteNo = "0000" + QuoteNo.ToString();
        }
        else if (QuoteNo.ToString().Length > 2)
        {
            strQuoteNo = "000" + QuoteNo.ToString();
        }
        else if (QuoteNo.ToString().Length > 3)
        {
            strQuoteNo = "00" + QuoteNo.ToString();
        }
        else if (QuoteNo.ToString().Length > 4)
        {
            strQuoteNo = "00" + QuoteNo.ToString();
        }
        else if (QuoteNo.ToString().Length > 5)
        {
            strQuoteNo = "0" + QuoteNo.ToString();
        }
        else if (QuoteNo.ToString().Length > 6)
        {
            strQuoteNo =  QuoteNo.ToString();
        }
        else
        {
            strQuoteNo = QuoteNo.ToString();
        }

首先,我看不出这是否有效 - 肯定任何> 1 的东西都会被第一个抓住吗? 因此,其他else if都不会被触及。

其次,我认为您想查看数字格式。 这应该有效:

QuoteNo.ToString("000000");

如果你试图用零填充你的字符串,试着使用ToString。

http://msdn.microsoft.com/en-us/library/dd260048.aspx

裁判:

您可以使用"D"标准用前导零填充整数 数字格式字符串以及精度说明符。你可以垫 整数和浮点数与前导零,通过使用 自定义数字格式字符串。

法典:

int QuoteNo = currQuotetNo + 1;
string strQuoteNo = QuoteNo.ToString("D4");
string strQuoteNo = QuoteNo.ToString().PadLeft(6, '0'); 

最新更新