创建一个n长度的级联数组

时间:2019-07-15 17:58:07

标签: c# arrays

我正在尝试在数字字符串中创建位置的级联数组,而不是深度嵌套for循环。考虑到程序在理论上应该能够接受任何长度的数字字符串,这一点很重要。

我想做的是创建一个array数组的int数组,这样每个位置都被结合在一起。例如,如果输入字符串为4356,则有4个位置(0-3),并且数组应类似于

{0}, {1}, ..., {9}
{0, 1}, {0, 2}, ..., {0, 9}
{1, 2}, {1, 3}, ..., {1, 9}
{2, 3}, {2, 4}, ..., {2, 9}
...
{0, 1, 2}, {0, 1, 3}, ..., {0, 1, 9}
{0, 2, 3}, {0, 2, 4}, ..., {0, 2, 9}
...
{2, 3, 4}, {2, 3, 5}, ..., {2, 3, 9}
...
{3, 4, 5, 6}, {3, 4, 5, 7}, ..., {3, 4, 5, 9}
...
..., {6, 7, 8, 9}

第一个元素是{0},最后一个{6, 7, 8, 9}

我有一个接收数组的方法,因此我可以在foreach循环中运行此创建的锯齿状数组/复合数组,直到满足要求为止,然后它就爆发了。

此复合数组的创建长度为 n ,其中 n 是数字字符串的长度。因此,从理论上讲,这可能会占用Int32.Max作为输入。

是否有创建这些数组的快速方法?

0 个答案:

没有答案