C# C识别for循环中的项目
我已经创建了一个for循环,用于每个部分显示8个项目,但我正在尝试识别循环中的某些项目。例如,我想识别前两项,然后是第五项和第六项,但似乎可以正确识别技术C# C识别for循环中的项目,c#,C#,我已经创建了一个for循环,用于每个部分显示8个项目,但我正在尝试识别循环中的某些项目。例如,我想识别前两项,然后是第五项和第六项,但似乎可以正确识别技术 for (int i = 0; i < Model.Count; i++){ var item = Model[i] if ((i + 1) % 3 != 0 && (i + 1) % 4 != 0){ // What i want to display here } el
for (int i = 0; i < Model.Count; i++){
var item = Model[i]
if ((i + 1) % 3 != 0 && (i + 1) % 4 != 0){
// What i want to display here
}
else{
// Something else I want to display
}
}
这种方法适用于前四项,但对于后四项,它似乎不起作用而不是在模上乱搞一个“便宜”的诀窍是只需要有一个计数器来跟踪您所在的位置并在每个循环上重置
for (int i = 0; i < Model.Count; i++){
var item = Model[i]
int aux = i%4;
if (aux==0|| aux==1){
// What i want to display here
}
else{
// Something else I want to display
}
}
// Dummy list to represent whatever 'Model' is
var model = new List<string> { "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve" };
// A counter that keeps track of whether we're on 1, 2, 5 or 6
var counter = 1;
// Your loop
for (int i = 0; i < model.Count; i++)
{
// Get the item as you've shown
var item = model[i];
// Check whether we want this item or not
if (counter == 1 || counter == 2 || counter == 5 || counter == 6)
{
// Display
Console.WriteLine("Displayed: " + item);
}
else
{
// Do whatever else
Console.WriteLine("Skipped: " + item);
}
// Increase the counter
counter++;
// Reset the counter if we're into the next batch of 8
if (counter > 8)
counter = 1;
}
输出:
显示:一个
显示:两个
跳过:三个
跳过:四个
显示:五个
显示:6
跳过:七
跳过:八
显示:9
显示:10
跳过:11
跳过:12
我承认它不是很“花哨”,但它工作得很好,也很容易理解。与其到处乱搞模,“便宜”的诀窍是只要有一个计数器,它可以跟踪你在哪里,并在每个循环上重置
// Dummy list to represent whatever 'Model' is
var model = new List<string> { "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve" };
// A counter that keeps track of whether we're on 1, 2, 5 or 6
var counter = 1;
// Your loop
for (int i = 0; i < model.Count; i++)
{
// Get the item as you've shown
var item = model[i];
// Check whether we want this item or not
if (counter == 1 || counter == 2 || counter == 5 || counter == 6)
{
// Display
Console.WriteLine("Displayed: " + item);
}
else
{
// Do whatever else
Console.WriteLine("Skipped: " + item);
}
// Increase the counter
counter++;
// Reset the counter if we're into the next batch of 8
if (counter > 8)
counter = 1;
}
输出:
显示:一个
显示:两个
跳过:三个
跳过:四个
显示:五个
显示:6
跳过:七
跳过:八
显示:9
显示:10
跳过:11
跳过:12
我承认这不是很“花哨”,但它很好用,也很容易理解。柜台不是为你做的。如果i==0 | | i==1?例如,是前两项。FYI按1进行模运算将始终返回0,因为所有整数都可以被1整除。为什么不简单:int[]takeindex={0,1,3,4};对于int i=0;i