如何以参数化方式将组/明细组合填入矩阵?
算法填充矩阵问题
核心元素
- 组数组:固定包含6个元素,C#示例代码:
string[] groups = new string[] { "1_1", "1_2", "1_3", "2_1", "2_2", "2_3" }; - 明细数组:包含3至16个元素,C#示例代码:
string[] details = Enumerable.Range(1, 16).Select(x => x.ToString()).ToArray(); - 矩阵数组:代表12列8行的表格(共96个元素),行列数以参数传入但实际固定为12×8。
填充规则
- 填充顺序:优先采用**列优先(column-major)**方式(若行优先实现更优可提出)
- 单元格格式:每个单元格内容为「组数组索引 + 明细数组索引」的组合,最终效果参考对应图示
- 特殊场景适配:
- 明细数组含3个元素、10个元素时,矩阵填充效果对应图示
- 明细数组元素数在8-16之间时,无需换行偏移
需求
尝试过嵌套循环、字典映射、行列索引计算等多种方法均未成功,需要动态且算法简洁的实现方案,支持LINQPad语句、其他语言或伪代码。
内容的提问来源于stack exchange,提问作者JD136
相关产品推荐
相关产品推荐

