2016-06-15 60 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