【问题标题】:C# - data.table: split single column to multiple columnsC# - data.table:将单列拆分为多列
【发布时间】:2019-12-03 14:38:57
【问题描述】:

如何在 c# 中将单列拆分为多列?

例如: 我有一个单列的表,如下所示:

Acceleration100
From 2010-01-04 To 2015-06-03
From 2015-06-22 To 2015-06-23
Acceleration20
From 2010-01-14 To 2015-08-03
From 2015-09-22 To 2015-12-23
Acceleration200
From 2010-11-04 To 2015-06-13
From 2015-02-22 To 2015-06-29

我希望它看起来像这样:

Acceleration100                | Acceleration20                | Acceleration200
From 2010-01-04 To 2015-06-03  | From 2010-01-14 To 2015-08-03 | From 2010-11-04 To 2015-06-13
From 2015-06-22 To 2015-06-23  | From 2015-09-22 To 2015-12-23 | From 2015-02-22 To 2015-06-29

我该怎么办?

【问题讨论】:

  • 这没有意义。您的数据如何在 C# 中表示?请提供更清晰的图片。
  • 没有具体的数据结构?从一个显示器到另一个显示器,而不需要真正的日期时间类型或任何东西?
  • What should I do? 首先,您应该尝试自己想出一个解决方案。如果您遇到困难,请回到这里,向我们展示您编写的代码,然后我们可以提供帮助。

标签: c# split


【解决方案1】:

创建一个像Dictionary<string, List<string>> 这样的真实数据结构,其中键是Acceleration XYZ。逐行解析文件。如果您遇到带有Acceleration100 的行,您将其作为键插入,那么所有后续值都将添加到列表中。

这样,您可能会在同一个键下多次出现Acceleration100

您可能希望将List<string> 更改为更健壮的结构 具有 DateTime 属性:StartDate、EndDate。甚至可以检查“From To”行的格式是否正确。

然后可以像这样投影到列:C#: Bind Dictionary<string, List<string>> to DataTable

然后你可以像这样格式化输出:Print Contents Of A DataTable

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-15
    • 2017-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多