我们需要将数据从表中的行转置到输出表,以便为输入表中的每一行返回多行。在输出的每一行中提取数据的逻辑取决于输入行的给定列中是否存在值。
例如
输入表
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;
}
但这需要我对每个附加值列进行迭代。我可以避免这种情况并只传递一个委托,以便“选择新输出行”返回多行吗?