如何拆分数据表中一列的管道分隔(|)值,并在C#中保留其他列



我有一个名为dt1的数据表,就像这个

name    age  color
a|b|c   20   red
d|e|f   30   green
x|y|z   40   blue

我想将管道分隔(|(的第一列拆分为3列,并将其余列复制为

n1  n2  n3  age  color
a   b   c   20   red
d   e   f   30   green
x   y   z   40   blue

有人能就如何实现这一点向我提供建议吗?

尝试以下操作:

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("name", typeof(string));
dt1.Columns.Add("age", typeof(int));
dt1.Columns.Add("color", typeof(string));
dt1.Rows.Add(new object[] {"a|b|c", 20, "red"});
dt1.Rows.Add(new object[] {"d|e|f", 30, "green"});
dt1.Rows.Add(new object[] { "x|y|z", 40, "blue" });
DataTable dt2 = new DataTable();
dt2.Columns.Add("n1", typeof(string));
dt2.Columns.Add("n2", typeof(string));
dt2.Columns.Add("n3", typeof(string));
dt2.Columns.Add("age", typeof(int));
dt2.Columns.Add("color", typeof(string));
foreach (DataRow row in dt1.AsEnumerable())
{
string[] splitData = row.Field<string>(0).Split(new char[] {'|'});
dt2.Rows.Add(new object[] { splitData[0], splitData[1], splitData[2], row.Field<int>(1), row.Field<string>(2) });
}
}
}
}

相关内容

最新更新