入力テーブルのすべての行に対して複数の行が返されるように、テーブルの行から出力テーブルにデータを転置する必要があります。出力の各行のデータを抽出するためのロジックは、入力行の特定の列に値が存在するかどうかによって異なります。
例えば
入力テーブル
A、B、C、D、E、F
出力テーブル
A、B、C、[値がDに存在する場合、Dの値に対する何らかの操作]
A、B、C、[値がEに存在する場合、Eの値に対する何らかの操作]
A、B、C、[値がFに存在する場合、Fの値に対する何らかの操作]
これを行うために、私はこのようなことをするつもりです:
private IEnumerable<OutputRow> BuildOutputTable(DataTable inputTable)
{
var outputRows = from inputRow in inputTable.AsEnumerable()
select new outputRow(inputRow, *delegateToProcessor*);
return gbbOutputRows;
}
ただし、これには、追加の値の列ごとに繰り返す必要があります。それを避けて、「select new outputrow」が複数の行を返すように、単一のデリゲートを渡すことはできますか?