【问题标题】:how to convert single column to multiple columns datatable c# [closed]如何将单列转换为多列数据表c#[关闭]
【发布时间】:2019-01-13 08:14:24
【问题描述】:

我的 DataTable 只有一列,如何将其转换为四列。

我的数据表如下所示

Column1
1
2
3
4
5
6
7
8

我想将其转换为如下所示

Column1 Column2 Column3 Column4
1       2       3       4
5       6       7       8

【问题讨论】:

  • 你有没有尝试过?
  • @UsmanAli - 那么请尝试一下。如果它不起作用,请发布您的代码,以便我们提供帮助。
  • @Enigmativity,我不知道从哪里开始
  • 您是否需要以编程方式生成它,或者您已经知道哪些值将驻留在列中?请给出您的问题的一些背景:您如何表示数据,如何填充列等。正如其他 SO 研究员建议的那样,请先尝试一下(否则人们需要做出不同的假设 - 通常这是一个坏主意)
  • 是的,你可以在纸上写下需求,定义要遵循的步骤然后扔掉它。 Look here

标签: c#


【解决方案1】:

尝试以下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            DataTable dt1 = new DataTable();
            dt1.Columns.Add("Column1", typeof(int));
            dt1.Rows.Add(1);
            dt1.Rows.Add(2);
            dt1.Rows.Add(3);
            dt1.Rows.Add(4);
            dt1.Rows.Add(5);
            dt1.Rows.Add(6);
            dt1.Rows.Add(7);
            dt1.Rows.Add(8);

            DataTable dt2 = new DataTable();
            dt2.Columns.Add("Column1", typeof(int));
            dt2.Columns.Add("Column2", typeof(int));
            dt2.Columns.Add("Column3", typeof(int));
            dt2.Columns.Add("Column4", typeof(int));


            for (int i = 0; i < dt1.Rows.Count; i += 4)
            {
                dt2.Rows.Add(new object[] { dt1.Rows[i].Field<int>("Column1"), dt1.Rows[i + 1].Field<int>("Column1"), dt1.Rows[i + 2].Field<int>("Column1"), dt1.Rows[i + 3].Field<int>("Column1") });
            }

        }
    }
}

【讨论】:

    猜你喜欢
    • 2020-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-07
    • 2023-03-18
    • 2019-06-04
    • 1970-01-01
    • 2023-04-02
    相关资源
    最近更新 更多