我有一個數據表dtRecords
。它包含列Token
,其中包含鋪管(|)分隔值如何管分隔分裂(|)數據表中的一列的數值爲多列
例如
234|82|91
235|81|90
237|83|95
238|85|98
我想在另一個表中的輸出說dtCompleteRecords
3列a, b, c
具有dtRecords
的Token
柱的相應的值。
幫助,將不勝感激
我有一個數據表dtRecords
。它包含列Token
,其中包含鋪管(|)分隔值如何管分隔分裂(|)數據表中的一列的數值爲多列
例如
234|82|91
235|81|90
237|83|95
238|85|98
我想在另一個表中的輸出說dtCompleteRecords
3列a, b, c
具有dtRecords
的Token
柱的相應的值。
幫助,將不勝感激
試試這個:
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));
這太棒了。謝謝! – 2012-08-08 11:04:59
您正在尋找Split('|')
方法,即應用到字符串。所以例如myCell.Text.Split('|')
假設你有串:
string str = "234|82|91 235|81|90 237|83|95 238|85|98"
使用string.Split得到字符串元素的數組。
string[] strArray = str.Split('|');
稍後,您可以在數據表中插入這些值。
僅供參考,原始問題的數據分爲四行,但沒有正確標記爲代碼。我編輯它以顯示,因爲我認爲OP的意圖。不確定你是否想相應地編輯你的答案(儘管答案的本質不變)。 – Chris 2012-08-08 10:21:14
這將工作
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);
}
}
它的工作太..但它需要太多時間我喜歡,因爲我有我的數據庫中的一百萬記錄。儘管如此,感謝您的幫助。 – 2012-08-08 11:04:18
使用string.split( 「|」) ,將解決你的問題 – akhil 2012-08-08 10:09:40
請問您的字符串包含換行? 「編輯後」 – Habib 2012-08-08 10:12:24
你有沒有嘗試過嗎? – akhil 2012-08-08 10:15:12