2013-01-17 10 views
0

행이 행 아래에 깔끔하게 표시되도록 데이터 테이블을 반복 할 수 있습니까?서로 아래에 데이터 행 표시

내가 시도한 것은 다음과 같지만이 모든 데이터는 하나의 열에 표시됩니다.

foreach (DataRow row in myTopTenData.Rows) 
      { 
       foreach (DataColumn col in myTopTenData.Columns) 
       { 
        Console.Write(row[col].ToString() + " "); 
        Console.WriteLine(); 
       } 
      } 
+0

'Console.WriteLine();'을 바깥 쪽 루프로 이동하십시오. 그리고 "\ t"를 구분 기호로 사용하십시오. 시각적으로 나아질 것입니다. 그러나 문자열의 길이가 많이 달라지는 경우에도 도움이되지 않습니다. – ryadavilli

답변

1
foreach (DataRow row in myTopTenData.Rows) 
    { 
     foreach (DataColumn col in myTopTenData.Columns) 
      Console.Write(string.Format("{0, -10}", row[col].ToString())); 

     Console.WriteLine(); 
    } 

string.Format"{0, -10}"을 사용하면 열을 정렬하는 데 도움이됩니다 (왼쪽 맞춤에 음수 값을 사용하고 오른쪽 맞춤에 양수 값을 사용하고 물론 10은 임의 값 임).

1
당신은이 작은 LINQ 쿼리 및 String.Join 사용할 수 있습니다

:

foreach (DataRow row in myTopTenData.Rows) 
    Console.Write(string.Join(Environment.NewLine, row.ItemArray) + Environment.NewLine); 
1

왜 그냥이 함께하지 않는 : 여기

var allFields = myTopTenData.AsEnumerable() 
     .Select(r => string.Join(Environment.NewLine, r.ItemArray)); 
string allFieldsLines = string.Join(Environment.NewLine, allFields); 

Console.Write(allFieldsLines); 

루프와 비의 LINQ 버전의를 :

foreach (DataRow row in myTopTenData.Rows) 
{ 
    foreach (DataColumn col in myTopTenData.Columns) 
    { 
     Console.Write(row[col].ToString() + " "); 
    } 
    Console.WriteLine(); 
} 
+0

각 열마다 줄 바꿈이 계속됩니다.이 줄은 필요하지 않습니다 ... –

+0

Ok .. 질문을 이해하는 데 의심의 여지가있었습니다. –

관련 문제