Я пытаюсь сделать копию DataTable dt1 новым dt2. dt1 содержит столбцы типа string и boolean. 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 и изменить типы столбцов в строке.
- второй шаг: Импорт строки из dt1 в dT2
- 3-й шаг: Измените все истинные значения «+»
Есть ли лучший способ для выполнения этих шагов. «лучше» означает более четкое, простое, меньшее количество кода, меньшее количество шагов и лучшую производительность.
У вас есть проблема с производительностью? Вы можете попробовать реализовать только один цикл над строками, импортировать строку и обновить ее после. Но оба типа данных имеют одинаковую структуру, поэтому, возможно, лучше создать новую строку и скопировать поле, если вам не нужно состояние или что-то еще. –
Мне было интересно, есть ли другое решение вместо того, чтобы дважды зацикливать на строки и дважды на столбцы – ehh