ASP.NET遍历一个数组一次获得28个数组

时间:2019-01-25 16:09:31

标签: c# asp.net loops

我有一个称为任务的变量:

var tasks = new List<string>();

现在任务数为81,但这可能会改变。

我想做的是3个任务循环,一次获得28个循环:

@for (var i = 0; i < 28; i++)
{
}

@for (var i = 28; i < 56; i++)
{
}

@for (var i = 56; i < 81; i++)
{
}

我不喜欢对数字进行硬编码,所以我的问题是使用tasks.Count一次循环获得28个数组的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

由于您已在注释中阐明,您真正想要做的是在每28个元素(或其他元素)块之后执行不同的操作。为此,您可以使用%运算符。例如:

//Keep this constant somewhere else or maybe in a config value so it is easily changed
private const int TasksPerPage = 28;

现在我们可以遍历您的数据,同时在28个元素之后输出分页符:

for(var i = 0; i < tasks.Count(); i++)
{   
    //You can remove the i>0 check if you want to output a break at the start
    if (i % TasksPerPage == 0 && i > 0)
    {
        Console.WriteLine("Page Break");
    }

    Console.WriteLine(tasks[i]);
}

答案 1 :(得分:1)

您可以使用Linq提取和跳过特定金额。

var tasks = new List<string>();

var groupSize = tasks.Count() / 3;

var groupOne = tasks.Take(groupSize);
var groupTwo = tasks.Skip(groupSize).Take(groupSize);
var groupThree = tasks.Skip(groupSize * 2).Take(groupSize);

foreach(var item in groupOne)
{
    // Do Something
}


foreach(var item in groupTwo)
{
    // Do Something
}


foreach(var item in groupThree)
{
    // Do Something
}