2013-01-17 86 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

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) 
    Console.Write(string.Join(Environment.NewLine, row.ItemArray) + Environment.NewLine); 
1

你爲什麼不只是這個嘗試:

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

每列之後仍然會有換行符,這是不需要的... –

+0

好吧..對理解這個問題有疑問。 –