我想在同一个列表上嵌套循环,嵌套循环的数量越来越多。内部循环将调用一个带有参数列表的方法。
public void MainMethod()
{
var list = new List<MyObject>();
//Populate list...
foreach (var item1 in list)
{
foreach (var item2 in list)
{
MyMethod(item1, item2);
}
}
foreach (var item1 in list)
{
foreach (var item2 in list)
{
foreach (var item3 in list)
{
MyMethod(item1, item2, item3);
}
}
}
// and so on...
}
private void MyMethod(params MyObject[] items)
{
}
有没有一种方法可以简化这一点?
更新
:一个改进是在最后一个嵌套循环中添加对前面嵌套循环的方法的调用。
foreach (var item1 in list)
{
foreach (var item2 in list)
{
foreach (var item3 in list)
{
MyMethod(item1, item2, item3);
}
MyMethod(item1, item2);
}
}
我的最后一个嵌套循环将有11个级别深,所以我想可能有一种更聪明的方法来做到这一点。