优化我添加前缀零功能

时间:2014-01-14 10:29:05

标签: c# function

下面是我的函数,因为你可以看到我想在引号no前面加上前导零,这个if if语句似乎不是最好的方式,我想知道是否有人有更好的方法这样做,我确定会有。

非常感谢

        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();
        }

3 个答案:

答案 0 :(得分:7)

首先,我看不出这是有效的 - 当然是任何> 1会被第一个抓到吗?所以其他任何else if都不会到达。

其次,我认为你想看一下数字格式。这应该有效:

QuoteNo.ToString("000000");

答案 1 :(得分:6)

如果您尝试用零填充字符串,请尝试使用ToString。

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

价:

  

您可以使用“D”标准填充带前导零的整数   数字格式字符串和精度说明符。你可以垫   带有前导零的整数和浮点数   自定义数字格式字符串。

代码:

int QuoteNo = currQuotetNo + 1;
string strQuoteNo = QuoteNo.ToString("D4");

答案 2 :(得分:2)

string strQuoteNo = QuoteNo.ToString().PadLeft(6, '0');