这个方法得到:
IEnumerable<object[]>- 其中每个数组都是固定大小的(它代表关系数据结构)。
DataEnumerable.Column[]- 一些元数据列,大多数情况下它们对所有行都具有相同的值。
预期结果:
每个“行”都应该为这些列中的每一列获取值(因此数据结构保持相关)。
    private IEnumerable<object[]> BindExtraColumns(IEnumerable<object[]> baseData, int dataSize, DataEnumerable.Column[] columnsToAdd)
    {
        int extraColumnsLength = columnsToAdd.Length;
        object[] row = new object[dataSize + extraColumnsLength];
        string columnName;
        int rowNumberColumnIndex = -1;
        for (int i = 0; i < extraColumnsLength; i++)
        {
            //Assign values that doesn't change between lines..
            // Assign rowNumberColumnIndex if row number column exists
        }
        //Assign values that change here, since we currently support only row number
        // i'ts not generic enough        
        if (rowNumberColumnIndex != -1)
        {
            int rowNumber = 1;
            foreach (var baseRow in baseData)
            {
                row[rowNumberColumnIndex] = rowNumber;
                Array.Copy(baseRow, 0, row, extraColumnsLength, dataSize);
                yield return row;
                rowNumber++;
            }
        }
        else
        {
            foreach (var baseRow in baseData)
            {
                Array.Copy(baseRow, 0, row, extraColumnsLength, dataSize);
                yield return row;
            }
        }
    }
可以从具有相对较大数据集的数百个线程调用此方法,因此这里的性能至关重要,我尝试创建尽可能少的新对象。
请注意 - 这是一个私有方法,仅由DataReader 使用,它读取每一行,并在读取下一行之前将其传递给另一个数组。
那么-在这里复制数组是否会以某种方式在这里进行优化,我应该(小心地)使用内存来提升这里的东西吗?
谢谢