C# 内联if statement以确定for循环中的i++或i--增量

C# 内联if statement以确定for循环中的i++或i--增量,c#,xamarin.ios,C#,Xamarin.ios,我试图理解为什么我的条件if语句给了我一个编译错误。 这不对吗 for(int i=startAt; i>=_itemsList.Count; length < 0 ? i-- : i++;) { } 根据,它应该是错误消息所说的内容之一: 赋值语句 方法调用 前缀或后缀增量表达式,如++i或i++ 前缀或后缀减量表达式,如-i或i- 使用“新建”创建对象 等待表达 其中一个奇怪的可编译解决方案是: i += length < 0 ? -1 : 1 根据,它应该是错误消息

我试图理解为什么我的条件if语句给了我一个编译错误。 这不对吗

for(int i=startAt; i>=_itemsList.Count; length < 0 ? i-- : i++;)
{

}
根据,它应该是错误消息所说的内容之一:

赋值语句

方法调用

前缀或后缀增量表达式,如++i或i++

前缀或后缀减量表达式,如-i或i-

使用“新建”创建对象

等待表达

其中一个奇怪的可编译解决方案是:

i += length < 0 ? -1 : 1
根据,它应该是错误消息所说的内容之一:

赋值语句

方法调用

前缀或后缀增量表达式,如++i或i++

前缀或后缀减量表达式,如-i或i-

使用“新建”创建对象

等待表达

其中一个奇怪的可编译解决方案是:

i += length < 0 ? -1 : 1

最好的答案是虫族,但还有另一个解决方案应该有效

int dummy = 0;
for(int i=startAt; i>=_itemsList.Count; dummy++)
{
  // Do your thing
  length < 0 ? i-- : i++;
}

最好的答案是虫族,但还有另一个解决方案应该有效

int dummy = 0;
for(int i=startAt; i>=_itemsList.Count; dummy++)
{
  // Do your thing
  length < 0 ? i-- : i++;
}

确切的错误是什么?你有什么额外的;最后呢?我加了,;只是想看看它是否可以在那里使用——但它最初不在那里。Yerror CS0201:只有赋值、调用、递增、递减和新对象表达式可以用作语句CS0201,可能是因为语句的长度<0?i-:i++不是一个调用、递增、递减或新的对象表达式?我的问题是-如何根据某些条件在C中进行++正向或-反向的条件迭代?确切的错误是什么?你有什么额外的;最后呢?我加了,;只是想看看它是否可以在那里使用——但它最初不在那里。Yerror CS0201:只有赋值、调用、递增、递减和新对象表达式可以用作语句CS0201,可能是因为语句的长度<0?i-:i++不是一个调用、递增、递减或新的对象表达式?我的问题是-如何根据某些条件在C中进行++正向或-反向的条件迭代?这不是一个解决方法。我也阅读了这个文档。我真正需要知道的是,我如何根据某些条件在C语言中进行++正向或-反向的条件迭代?@user1060500:这是一种解决方法。我的表达式完全符合您的要求,并且语法正确。很抱歉,我在阅读时错过了您回答的最后一部分。@user1060500:是的,与另一个问题相比,这个表达式并不复杂,可以手动解释,无需阅读C标准。我甚至没有提到I=I-根本不修改值。这不是一个解决方法。我也阅读了这个文档。我真正需要知道的是,我如何根据某些条件在C语言中进行++正向或-反向的条件迭代?@user1060500:这是一种解决方法。我的表达式完全符合您的要求,并且语法正确。很抱歉,我在阅读时错过了您回答的最后一部分。@user1060500:是的,与另一个问题相比,这个表达式并不复杂,可以手动解释,无需阅读C标准。我甚至没有提到I=I-根本不修改该值