我有一个数据表dtRecords
。它包含一列Token
,其中包含管道(|)分隔值
e.g。
234|82|91
235|81|90
237|83|95
238|85|98
我希望另一个表中的输出说明dtCompleteRecords
,其中3列a, b, c
具有Token
dtRecords
列{{1}}的相应值。
帮助将不胜感激
答案 0 :(得分:6)
假设你有字符串:
string str = "234|82|91 235|81|90 237|83|95 238|85|98"
使用string.Split获取字符串元素数组。
string[] strArray = str.Split('|');
稍后您可以在数据表中插入这些值。
答案 1 :(得分:4)
试试这个:
var dtCompleteRecords = new DataTable("CompleteRecords");
dtCompleteRecords.Columns.Add(new DataColumn("a", typeof(string)));
dtCompleteRecords.Columns.Add(new DataColumn("b", typeof(string)));
dtCompleteRecords.Columns.Add(new DataColumn("c", typeof(string)));
dtRecords.AsEnumerable()
.Select(row => row["Token"].ToString().Split('|'))
.ToList()
.ForEach(array => dtCompleteRecords.Rows.Add(array));
答案 2 :(得分:2)
您正在寻找适用于字符串的Split('|')
方法。所以例如myCell.Text.Split('|')
答案 3 :(得分:0)
这将有效
DataTable dt = yourdatatable;
DataTable dtable2 = new DataTable();
dtable2.Columns.Add("column1", System.Type.GetType("System.String"));
dtable2.Columns.Add("column2", System.Type.GetType("System.String"));
dtable2.Columns.Add("column3", System.Type.GetType("System.String"));
string value = "";
for (int i = 0; i < dt.Rows.Count; i++)
{
value = dt.Rows[0][i].ToString();
string[] splitPipeValue = value.Split('|');
DataRow drow = dtable2.NewRow();
drow[0] = splitPipeValue[0].ToString();
drow[1] = splitPipeValue[1].ToString();
drow[2] = splitPipeValue[2].ToString();
dtable2.Rows.Add(drow);
}
}