我需要 6 个数组的笛卡尔积 - 问题是任何时候最多 5 个数组可能为空。当所有数组都被填充时它工作得很好,但是当任何数组为空时炸弹
我的数组是这样的
MatrixArray_1[0] = 1
MatrixArray_1[1] = 2
MatrixArray_2[0] = null
MatrixArray_2[1] = null
MatrixArray_n[0] = 2
MatrixArray_n[1] = 2
等等
我目前正在使用此代码...源自 http://blogs.msdn.com/b/ericlippert/archive/2010/06/28/computing-a-cartesian-product-with-linq.aspx
var product1 = from first in MatrixArray_1
from second in MatrixArray_2
from third in MatrixArray_3
from fourth in MatrixArray_4
from fifth in MatrixArray_5
from sixth in MatrixArray_6
select new[] { first, second, third, fourth, fifth, sixth };
string[][] myCombos_linq = product1.ToArray();
我试过 putMatrixArray_n where first != null
但是它停在第一个空数组并且没有通过所有剩余的数组读取,所以我的返回数组总是 0 行,即使 array1 和数组 3 被填充。
代码/逻辑的任何更改在此时都值得赞赏!TIA