对于C#中的I循环,忽略I的值

对于C#中的I循环,忽略I的值,c#,for-loop,C#,For Loop,我在2D数组网格中存储一个令牌,这个令牌一次可以移动一个位置。 当令牌移动时,我使用下面的for循环检查每个位置 for (int i = 0; i < 9; i++){ // Do things } for(int i=0;i索引!=4)) { 控制台写入线(项目); } 无法自动跳过for循环中的索引,您已经有了最好的解决方案。我更愿意使用:如果(I==4)继续,因为它会阻止代码嵌套,您可能会感兴趣:@TomasChabada我想您可能有最好的建议。如果您将其作为答案,我将为

我在2D数组网格中存储一个令牌,这个令牌一次可以移动一个位置。 当令牌移动时,我使用下面的for循环检查每个位置

for (int i = 0; i < 9; i++){
    // Do things
}
for(int i=0;i<9;i++){
//做事
}
因为令牌的当前位置总是4,所以我包含了一个if语句,以避免检查令牌的当前位置

for (int i = 0; i < 9; i++){
    if(i != 4){
        // Do things////
    }
}
for(int i=0;i<9;i++){
如果(i!=4){
//做事////
}
}

有没有办法强制循环自动跳过声明中的i=4,或者这是忽略它的最佳方式。

可能这是最好的解决方案,但如果您确实想避免此
if
语句,您可以始终使用
foreach

var iterList=新列表{0,1,2,3,5,6,7,8};
foreach(iterList中的int元素)
{
//使用元素
}

但这似乎效率不高,内存也不友好。

这可能是最好的解决方案,但如果您真的想避免这种
if
语句,您可以始终使用
foreach

var iterList=新列表{0,1,2,3,5,6,7,8};
foreach(iterList中的int元素)
{
//使用元素
}

但这似乎不太有效,也不利于记忆。

这完全没问题,只有一个建议:我会使用

if (i == 4) continue;

为了防止代码嵌套

这完全没问题,只有一个建议:我会使用

if (i == 4) continue;
要防止代码嵌套,可以尝试以下操作:

List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6 };
foreach (int item in numbers.Where((number, index) => index != 4))
{
     Console.WriteLine(item);
}
列表编号=新列表{1,2,3,4,5,6};
foreach(整数项以数字表示,其中((数字,索引)=>索引!=4))
{
控制台写入线(项目);
}
您可以尝试以下方法:

List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6 };
foreach (int item in numbers.Where((number, index) => index != 4))
{
     Console.WriteLine(item);
}
列表编号=新列表{1,2,3,4,5,6};
foreach(整数项以数字表示,其中((数字,索引)=>索引!=4))
{
控制台写入线(项目);
}

无法自动跳过for循环中的索引,您已经有了最好的解决方案。我更愿意使用:
如果(I==4)继续
,因为它会阻止代码嵌套,您可能会感兴趣:@TomasChabada我想您可能有最好的建议。如果您将其作为答案,我将为您接受。@Parzavil好的,我发布了它,谢谢您。没有办法自动跳过for循环中的索引,您已经得到了最佳解决方案。我更愿意使用:
If(I==4)继续
,因为它会阻止代码嵌套。您可能会感兴趣:@TomasChabada我想您可能有最好的建议。如果你把它作为一个答案,我会接受它。@Parzavil好的,我发布了它,谢谢你。虽然这可能有效,但它可能会更慢,而且可读性肯定会更低。如果你这样做,我更喜欢可读性更高的
var iterList=Enumerable.Range(0,9)。除了(new[]{4})。在您的示例中,很难看到缺少
4
。虽然这可能会起作用,但它可能会更慢,而且可读性肯定会更低。如果您这样做,我更喜欢可读性更高的
var iterList=Enumerable.Range(0,9)。除了(new[]{4})。在您的示例中,很难看到缺少
4