我試圖將一張DataTable dt1複製到一張新的dt2中。 dt1包含字符串和布爾類型的列。 dt2將只包含字符串類型。製作一份Datatable的一個副本並進行一些更改
以下是我的代碼,它工作正常。
public DataTable Convert(DataTable dt1)
{
try
{
var dt2 = dt1.Clone();
foreach (DataColumn dc in dt2.Columns)
{
dc.DataType = Type.GetType("System.String");
}
foreach (DataRow row in dt1.Rows)
{
dt2.ImportRow(row);
}
foreach (DataRow dr in dt2.Rows)
{
foreach (DataColumn dc in dt2.Columns)
{
bool value;
if (bool.TryParse(dr[dc].ToString(), out value))
{
dr[dc] = "+";
}
}
}
return dt2;
}
finally
{
}
}
- 第一步:DT1的克隆和更改列類型爲字符串。
- 第2步:從DT1導入行DT2
- 第三步:將所有真值「+」
有沒有執行這些步驟的更好的方法。 「更好」意味着更清晰,更簡單,代碼更少,步驟更少,性能更好。
您是否有性能問題?您可以嘗試在行上只實現一個循環,導入行並在之後進行更新。但是這兩個數據表的結構都不一樣,所以如果你不需要狀態或者什麼都不需要,那麼創建一個新行和複製字段會更好。 –
我想知道是否有另一種解決方案,而不是在行上循環兩次,在列上循環兩次 – ehh