我正在寻找从长度为k的int数组中获取长度为n的所有可能int数组的最佳方法,包括n-1项的选项为null。 例如,我有5个元素的数组(k = 5),我想要3(n = 3)的所有组合
int[] numbers = new int[5] {1, 2, 3, 4, 5};
和长度为3的可能子数组:
{1,null,null},{1,null,2},{1,2,null} .....等等。
最好的方法是什么? 马坦
答案 0 :(得分:0)
您可以在数字数组中包含null。 此代码生成除{null,null,null}之外的所有可能的排列。
var numbers = new int?[]{null, 1, 2, 3, 4, 5};
var result = new List<int?[]>();
foreach (int? x in numbers)
{
foreach (int? y in numbers)
{
foreach (int? z in numbers)
{
if (x == null && y == null && z == null)
continue;
result.Add(new int?[] { x, y, z });
Console.WriteLine("x: {0} - y: {1} - z: {2}", x, y, z);
}
}
}