2012-01-14 54 views
-1

我有一個循環中的數組。C#:如何在不知道數組大小的情況下使用string.Format格式化字符串?

在時間,陣列可以具有不同的尺寸(可以是1,2,3,4,5,6,7,8等元素)

如何可以使用string.Format而不指定所述陣列的確切大小:在的情況下

代碼名單與6名成員。

StringBuilder stringBuilder = new StringBuilder(); 
           line = stringBuilder.AppendLine(string.Format("{0, -40} 
           {1, -40} {2, -25} {3, -15} {4, -15} {5, -15} ", 
           listString[0], listString[1], listString[2], 
           listString[3], listString[4], listString[5])) 
           .ToString(); 

Console.WriteLine(line) 

我需要一段代碼來格式化我的字符串沒有元素的特定數量的情況下寫一個特定的代碼。任何我不知道的功能? :)

+1

你所顯示的格式對所有元素都不一樣......所以...什麼是規則? – 2012-01-14 10:11:41

+0

'StringBuilder'不是你的問題,根據你的描述我認爲你的問題是關於'String.Format'。我對嗎? – ken2k 2012-01-14 10:12:29

+0

是的,是的,你是對的。 :)對不起,錯誤。 :) – 2012-01-14 10:27:22

回答

4

基本上,不要在這裏使用string.Format - 而是隻使用適當的格式說明符對數組使用Append來遍歷數組。

for(int i=0;i<arr.Length;i++) { 
    if(i!=0) builder.Append(' '); 
    // need to apply format per i, it seems  builder.Append(arr[i].ToString(formatSpecifier)); 
} 
builder.AppendLine(); 
1

即使這是一個老問題,我想我會回答任何其他來自谷歌這裏的人。

我的方法是使用foreach循環和StringBuilder,然後將每個元素附加到字符串的末尾。 一旦串「建立」只打印字符串在你的String.Format

StringBuilder sb = new StringBuilder(); 
foreach(int number in listString) 
{ 
    sb.Append(number).Append("\n"); //or whatever separator you would like 
} 
string sbResult = sb.ToString(); 

Console.WriteLine(String.Format("Write your content here {0}", sbResult)); 

希望這仍然是有幫助的人。

相關問題