DataTable で (Excel ファイルから) データを読み込んで、これをフィルター処理して、特定の列のみを他の列にコピーしたい!
データテーブル形式:
some data
ColA|ColB|ColC
xxxx|xxxx|xxxx
some data
some data
ColA-ColC に関連しない他のテーブル データを表します
xxxx を含む ColA-ColC を新しい DataTable にコピーするにはどうすればよいですか?
どうも
対象列のみを使用してコピー DataTable を定義します。次のサンプル コードを使用して、ソース行の列をループし、値をターゲット行に設定できます。
public void IntegrateRow(DataRow p_RowCible, DataRow p_RowSource)
{
try
{
foreach (DataColumn v_Column in p_RowCible.Table.Columns)
{
string ColumnName = v_Column.ColumnName;
if (p_RowSource.Table.Columns.Contains(ColumnName))
{
p_RowCible[ColumnName] = p_RowSource[ColumnName];
}
}
}
catch (Exception e)
{
...
LINQを使用して実現できます
が 2 つあるとしDataTable
ます。1.dtSource
と 2. dtDestination
.
行がない場合dtDestination
は、以下のコードを使用して空白行を生成します。
dtSource.AsEnumerable().All(row => { dtDestination.Rows.Add(); return true; });
以下のコードは、特定のDataColumn
データをDataColumn
別のにコピーしますDataTable
。両方のテーブルの行数が同じであると仮定します。
int rowIdx = 0;
dtDestination.AsEnumerable().All(row => { row["colName"] = dtSource.Rows[rowIdx++]["colName"]; return true; });