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のクローンと文字列に列の種類を変更します。
- 第二ステップ:
- 第三ステップをDT2するDT1から行をインポートします。すべての真の値を変更するには「+」
これらの手順を実行するためのより良い方法があります。 「より良い」とは、より明確でシンプルでコードが少なく、ステップ数が少なく、パフォーマンスが優れています。
パフォーマンスに問題がありますか?行に1つのループしか実装しないで、行をインポートして後で更新することができます。しかし、両方のデータ型は同じ構造ではないので、新しい行を作成して、コピー・フィールドを作成することは、状態や必要なものがない場合にはより効果的です。 –
行に2回、列に2回ループするのではなく、別の解決策があるのだろうかと思いました – ehh