2012-01-14 2 views
-1

루프에 배열이 있습니다. (A)의 경우C# : 배열의 크기를 모른 채 string.Format을 사용하여 문자열의 형식을 지정하는 방법은 무엇입니까?

코드 :

한 번에, 배열이 다른 크기를 가질 수 배열의 정확한 크기를 지정하지 않고 내가 string.Format 사용할 수있는 방법

(1,2,3,4,5,6,7,8 등의 요소가 될 수 있음) 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

표시되는 형식이 모든 요소에서 동일하지 않습니다 .... 그래서 ... 규칙은 무엇입니까? –

+0

'StringBuilder'는 귀하의 설명에 근거하여 귀하의 문제가 아닙니다. 당신의 질문은'String.Format'에 관한 것 같아요. 내가 맞습니까? – ken2k

+0

네, 맞습니다. :) 실수해서 죄송합니다. :) –

답변

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

희망을 문자열을 인쇄 할 수 있습니다.

관련 문제