【问题标题】:Convert Datatable into an array in C#在 C# 中将 Datatable 转换为数组
【发布时间】:2016-10-16 02:07:59
【问题描述】:

我想在 C# 中将 DataTable 转换为二维数组形式。 下面是一个例子,便于理解。

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]]

我正在使用 Razor 引擎进行前端渲染。

【问题讨论】:

  • 你试图做什么?任何代码示例?你在哪里挣扎?
  • 听起来不错!你可以做到的
  • 你想用 C# 还是 JavaScript 来做?
  • 你可以使用很多东西,ajax、json、list、enumerable...
  • 转换后你打算怎么处理...

标签: javascript c# arrays


【解决方案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

【讨论】:

    【解决方案2】:

    很简单:

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

    【讨论】:

    • 这仅适用于一行如何回答整个表格需要转换的问题。
    • @MairajAhmad 你是对的,谢谢你的评论,我编辑了我的答案。
    【解决方案3】:

    您可以使用 LINQ 将 DataTable 转换为数组。

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

    【讨论】:

    • 这可以说是一个 rows 数组,而不是一个有用的 elements 数组。见上面的Hari's answer
    猜你喜欢
    • 1970-01-01
    • 2015-11-19
    • 2018-03-16
    • 2014-10-16
    • 1970-01-01
    • 2013-10-14
    • 1970-01-01
    • 2011-11-29
    • 1970-01-01
    相关资源
    最近更新 更多