如何根据循环变量动态生成嵌套循环

时间:2019-03-08 06:10:13

标签: c# design-patterns

我正在构建一个测试程序。该程序将迭代许多参数组合,并针对每种情况返回测试结果。 我的问题是,不是所有类型的参数都发送到程序中。例如,此时出现参数A,参数B和参数C。然后针对所有参数组合进行3次循环:

foreach (var a in paramA )
   foreach (var b in paramB )
       foreach (var c in paramC )

但是有时会有ParamA,ParamD,或者然后我必须进行如下循环

foreach ( var a in paramA )
   foreach ( var d in paramD )

所以我想知道对于这个特殊问题是否有某种设计模式或技术

谢谢

1 个答案:

答案 0 :(得分:0)

这是我的递归尝试。

假设var[] pars是包含所有参数的数组。

private void RunAll(var[] parm)
{
    foreach(var p in parm[0])
    {
        //Do something.
        if(parm.Count()>1) RunAll(parm.Skip(1).ToArray());
        else
        {
            //Do something for the bottom-most param.
        }
    }
}

在主代码中,只需将所有参数放在pars中并调用RunAll(pars);

祝你好运!