遍历算法中我希望实现当index1,index2,index3,index4,index5中不等于0时才有下面对应的for循环,如果等于0的话就不循环这个for循环,不知道有没有什么解决方案?或者说有没有替代的方法
int index1=3;
int index2=3;
int index3=2;
int index4=4;
int index5=4
int totalStep = 500 for (int i1 = 0; i1 < index1;i1++ )
{
for (int i2 = 0; i2 < index2; i2++)
{
for (int i3 = 0; i3 < index3; i3++)
{
for (int i4 = 0; i4 < index4; i4++)
{
for (int i5 = 0; i5 < index5; i5++)
{
for (int time = 0; time < totalStep; time++)
{
//dosomething
}
}
}
}
}
}
算法遍历解决方案
int index1=3;
int index2=3;
int index3=2;
int index4=4;
int index5=4
int totalStep = 500 for (int i1 = 0; i1 < index1;i1++ )
{
for (int i2 = 0; i2 < index2; i2++)
{
for (int i3 = 0; i3 < index3; i3++)
{
for (int i4 = 0; i4 < index4; i4++)
{
for (int i5 = 0; i5 < index5; i5++)
{
for (int time = 0; time < totalStep; time++)
{
//dosomething
}
}
}
}
}
}
算法遍历解决方案
解决方案 »
- 多线程问题!关于修改窗体控件属性
- C# winform中如何用ReportViewer打印出库单这种父子关系的表单?
- C# 怎么抛出多个异常?
- C# AVI截取
- 复杂的查询
- vb.net里的“异或” 和C# 里的“异或” 疑问!!!1
- 怎样用 xml 读写类的所有属性?
- 条件限制控件RequiredFieldValidator的问题?
- C#应用程序怎么做成光盘autorun?
- 请问:如何使工具栏上的按钮控制所有打开窗体内的操作,如:存盘、编辑。。。。(MDI)
- DataBinding:“System.String”不包含名为“TotalType”的属性。
- WPF,自定义窗口,在八个位置拉动改变尺寸,是怎么做的
{
return;
}
else
{
// 你的循环代码}
关键是最后dosomething这里要做的事情导致我用递归也有点不好写,所以想到动态for循环的方式
3L并没有递归啊,只不过给出一个前置的判断,先判断完然后再进行你那个FOR循环
我需要根据条件来确定有几个循环。这几个循环没有上下层级关系的,如果index1不满足那就是其它4个循环了,如果index2和4不满足那就是循环1,3,5了
怎么不对
四重循环,结果是3x2x2x1=12种
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ForAndFor
{
class Program
{
static void Main(string[] args)
{
int[][] data = new int[][]
{
new int[] { 1, 2, 3 },
new int[] { 4, 5 },
new int[] { 7, 8 },
new int[] { 9 }
};
var query = data[0].Select(x => new int[] { x });
foreach (var item in data.Skip(1))
{
query = query.SelectMany(x => item.Select(y => x.Concat(new int[] { y }).ToArray()));
}
foreach (var item in query)
{
Console.WriteLine(string.Join(", ", item));
}
}
}
}
for (int i1 = 0; i1 < index1 or i1 == 0;i1++ )
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ForAndFor
{
class Program
{
static void Main(string[] args)
{
int[][] data = new int[][]
{
new int[] { 1, 2, 3 },
new int[] { 4, 5 },
new int[] { 7, 8 },
new int[] { 9 }
};
var query = data[0].Select(x => new int[] { x }).ToList();
foreach (var item in data.Skip(1))
{
query = query.SelectMany(x => item.Select(y => x.Concat(new int[] { y }).ToArray())).ToList();
}
foreach (var item in query)
{
Console.WriteLine(string.Join(", ", item));
}
}
}
}不好意思,之前用的VS2012,编译器修改了。在VS2010上使用上面的代码。