c# - 如何拆分数据表中列的管道分隔 (|) 值并在 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) });
}
}
}
}
推荐阅读
- android - Firebase动态链接随机打开playstore,但应用已经安装
- node.js - API 网关返回损坏的 Excel 文件
- python - 使用 Anaconda 基础虚拟环境在 PyCharm 中设置项目
- authentication - 授权服务器,Oauth2 和 auth0
- swift - 如何使用情节提要和 swfit 在一个集合视图中设置每个集合视图单元格大小?
- css - 如何在没有通用选择器的情况下设置全局/默认字体系列?
- scala - 如何向现有 Iceberg 表添加分区
- c# - 构建时调用 exe 包括命令名称和参数
- javascript - NodeJS 输出是函数而不是打印的字符串
- google-apps-script - 跨过一个范围