如何修改C#代码实现二维数组(矩阵)右侧追加列
C# 二维数组右侧追加列实现方案
你当前的代码是通过将原有数组的所有列整体向右偏移1位(after[i, j + 1] = before[i, j]),空出第0列实现左侧追加。只要取消原有内容的列偏移,让原有内容直接填充新数组的前N列,最后多出来的列就是右侧新增的追加列,修改后的代码如下:
static TElement[,] AppendColumnOnTheRight<TElement>(TElement[,] before) { var after = new TElement[before.GetLength(0), before.GetLength(1) + 1]; for (var i = 0; i < before.GetLength(0); ++i) for (var j = 0; j < before.GetLength(1); ++j) // 原有内容直接赋值到对应位置,不需要列偏移 after[i, j] = before[i, j]; // 如果需要给新增的右侧列设置默认值,可以在这里加逻辑,比如: // var newColumnIndex = before.GetLength(1); // for (var i = 0; i < before.GetLength(0); ++i) // after[i, newColumnIndex] = 默认值; return after; }
核心改动点
- 函数名调整为
AppendColumnOnTheRight更贴合功能语义 - 赋值逻辑从
after[i, j + 1] = before[i, j]改为after[i, j] = before[i, j],原有内容不偏移,新数组最后一列自然空出作为右侧追加列 - 可选新增默认值填充逻辑,根据业务需要给追加的列统一赋值即可
内容的提问来源于stack exchange,提问作者user15519784
相关产品推荐
相关产品推荐

