2016-06-15 61 views
-4

我想在C#中以2-D數組格式轉換DataTable。 下面是清楚理解的例子。將Datatable轉換爲C#中的數組

數據表在C#:

code   Price 
----------  ---------- 
1146441600000 34 
1146528000000 5 
1146614400000 10 
1146700800000 7 
1146787200000 12 
1147046400000 8 
1147132800000 9 

輸出在JS需要:

[[1146441600000,34], 
[1146528000000,5], 
[1146614400000,10], 
[1146700800000,7], 
[1146787200000,12], 
[1147046400000,8], 
[1147132800000,9]] 

我使用剃刀引擎前端渲染。

+0

那你嘗試做?任何代碼示例?你在哪裏掙扎? –

+2

聽起來不錯!你可以做到這一點 – MickyD

+0

你想在C#或JavaScript中做到這一點嗎? – user3378165

回答

-1

您可以使用LINQ將DataTable轉換爲數組。

var dtEnumerable = dt.AsEnumerable(); 
tableArray = dtEnumerable.ToArray(); 
+0

這可以說是一個_rows_數組,而不是一個有用的_elements_數組。請參閱上面的[Hari的答案](http://stackoverflow.com/a/37827546/585968) – MickyD

0

非常簡單:

string[] arrray = dt.Rows.OfType<DataRow>().Select(k => k[0].ToString()).ToArray(); 
+0

這只是一行如何回答這個問題,因爲整個表格需要轉換。 – Mairaj

+0

@MairajAhmad你是對的,謝謝你的評論,我編輯了我的答案。 – user3378165

1

一種方法是使用格式選項和Linq擴展功能,這樣做。

DataTable dt; // set your source 
var rows = dt.AsEnumerable() 
      .Select(r=> string.Format("[{0}]", string.Join(",", r.ItemArray))); 

var output = string.Format("[{0}]", string.Join(",", rows.ToArray())); 

入住這Demo