替代循环for和foreach

时间:2015-07-01 05:06:04

标签: c# loops for-loop foreach

我有循环和内部for循环我有foreach循环,我想要的是首先运行循环然后再循环,然后再循环然后foreach ...

我的代码是:

for (int count = 0; count < countMaster; count++)
{
    foreach (string TemplateName in TemplateList)
    {
        dt.TableName = TemplateName;
        ds.Tables.Add(dt);
    }
}
return ds;

我试图在foreach循环的第一次迭代之后使用break再次转到for循环,在foreach的第二次迭代中它再次从循环传递相同的值。

3 个答案:

答案 0 :(得分:1)

在您的情况下,您正在迭代的列表的大小应该相等,或者您应该告诉我们您真正想要做的事情。

但对于这个具体问题,你可以这样做:

for (int count = 0; count < countMaster; count++)
{
    foreach (string TemplateName in TemplateList)
    {
        dt.TableName = TemplateName;
        ds.Tables.Add(dt);

        count++;
    }
}

注意:但我必须说这没有多大意义。你最好试着告诉我们你真正想做什么。

答案 1 :(得分:0)

为什么不执行以下操作来满足您的要求,

foreach (string TemplateName in TemplateList)
{
    if (TemplateList.IndexOf(TemplateName) < countMaster)
    {
        dt.TableName = TemplateName;
        ds.Tables.Add(dt);
    }
}

希望这会有所帮助......

答案 2 :(得分:0)

我不是100%肯定你在问什么,但是你想在每个循环中执行一次吗?对我来说听起来像Zip操作。

var xs = new[] { 1, 2, 3 };
var xs2 = new[] { 4, 5, 6 };

var results = xs.Zip(xs2, (i,i2) => i + ":" + i2);

输出:

1:4 
2:5 
3:6