2014-01-14 2 views
1

Ниже приведена моя функция, так как вы можете видеть, что я хочу префикс цитаты no с ведущими нулями, это утверждение, сделанное ive, не похоже на лучший способ, мне было интересно, есть ли у кого лучший способ сделав это, я уверен, что будет.оптимизация моего добавления функции нумерации префикса

Большое спасибо

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

Я думаю, что стоит задавать такие вопросы, на http://codereview.stackexchange.com/ –

+0

Добавление к ответам: В случае, если вам нужно несколько 'if', попробуйте используйте 'switch'. – dovid

ответ

6

Если вы пытаетесь пэд строку с нулями пытаются использовать ToString.

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

Ref:

Вы можете подушечка целое с ведущими нулями при помощи функции «D» стандарт числовой формат строки вместе с прецизионным спецификатора. Вы можете использовать как целые числа, так и числа с плавающей запятой с начальными нулями, используя строчную строку формата .

Код:

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

Это работает! – AlexW

7

Во-первых, я не могу видеть, что это работает - наверняка что-нибудь, что это> 1 поймают в первый? Таким образом, никто из других else if не достигнут.

Во-вторых, я думаю, вы хотите посмотреть на форматирование чисел. Это должно работать:

QuoteNo.ToString("000000");

+0

ах да мне нужно использовать = вместо> я хочу только добавить с правильным количеством нулей, будет ли строка «00000» делать? Thanks – AlexW

+0

'ToString (" 000000 ")' всегда будет возвращать строку, содержащую 6 символов. Попробуй! –

Смежные вопросы