2016-10-17 65 views
-1

我得到了一些ExcelValues,這些字段從700-751和800-851命名。現在,我想獲得結果並存儲它們。發生將0粘貼到字符串如果int數<10

for (int countDur = 0; countDur<= 51; countDur++) 
{ 
    string excelFieldMember = $"N7{countDur}"; 
    string excelFieldNonMember = $"N8{countDur}"; 
} 

一個例外,當索引countDur小於10,因爲countDur = 0結果不是700,它是70然後,依此類推。

所以我用

if(countDur < 10) 

但我認爲是達到這個更聰明的方式。我知道有一個string.Format()方法,因爲這些字段是int值,我有一個IoString()方法,我可以粘貼一個參數。

我的問題是,我必須粘貼什麼作爲參數?我無法在C#文檔中找到它。

如果該值低於10,我希望在粘貼索引countDur之前寫入0。

+0

順便說一句,你不能標記多個答案,作爲接受的答案,只有一個(因爲你試圖接受三種不同的)。選擇一個工作,解釋它,提供進一步閱讀或顯示多種方式(如C#6和更低)的鏈接。如果多個具有相同的等級,則選擇最老的。相反,如果你有足夠的聲譽(我認爲50),你可以得到所有有用的答案。 –

回答

1

雖然你正在尋找一種方式來使用ToString爲什麼不剛開始從您需要的指數for循環,而不是從0

for (int countDur = 700; countDur <= 751; countDur++) 
{ 
    string excelFieldMember = $"N{countDur}"; 
    string excelFieldNonMember = $"N{countDur+100}"; 
} 

在任何情況下,如果字段發生變化,使用「幻數」很容易出現錯誤。瞭解如何獲取該值,而不是將其存儲爲循環的硬編碼。 (也是一樣的+100對非成員字段)

+1

謝謝你的工作:) – peterHasemann

+0

@peterHasemann - 不客氣:)想想我說的「魔法數字」:) –

2

你想這樣的:

for (int countDur = 0; countDur<= 51; countDur++) 
{ 
    string excelFieldMember = $"N7{countDur:D2}"; 
    string excelFieldNonMember = $"N8{countDur:D2}"; 
} 

這與填充尾隨零的數量,讓你得到700,而不是70

MSDN: The Decimal ("D") Format Specifier

+0

@TimSchemelter是'$'現在是字符串格式的新約定嗎? – Sherlock

+1

@midtwo:是的,這是C#6字符串插值運算符。 https://msdn.microsoft.com/en-us/library/dn961160.aspx –

+0

很好,很抱歉提問。我問你,因爲你得到最高的repu。 – Sherlock

0

試試這個,我認爲這是你需要什麼

string excelFieldMember = $"N7{countDur.ToString("D2")}"; 
string excelFieldNonMember = $"N8{countDur.ToString("D2")}"; 
相關問題