如何阻止"继续"对于NEXT迭代c#

时间:2016-11-09 10:09:42

标签: c# .net foreach

在处理情感分析中的否定时,我遇到了这个问题。我希望编译器跳过" next"迭代,而不是当前。我怎样才能在C#中实现它? 其实我正在申请条件:

foreach(var line in txtbox.Lines)
{
     //see if line contains not, if yes, see if next line contains positive or negative words, if yes, negate the "rating".
}

问题是当我否定"下一行"的评级时如上所示,它被否定,并且循环再次出现"该行"在下一次迭代中,它将该单词计算为正数。

例如:

第1行:不

第2行:好

Not Good被认为是-3因为我的条件[在line1上迭代]它计算它+3 [在line2上迭代]使得最终强度+3 -3 = 0

  1. 如何跳过" next"迭代?
  2. 如果不可能,我该如何处理?我已经尝试删除" next"行,但不起作用,不知道为什么。
  3. 我只是觉得我可以这样做。我非常感谢任何其他有效的技术来处理它。

1 个答案:

答案 0 :(得分:1)

这是在foreach声明中跳过某个项目的一种简单方法。

bool skip_next = false;
foreach(var line in txtbox.Lines)
{
   if(skip_next)
   { 
     skip_next = false;
     continue;
   }


   /* whatever "rating calculation" here */

   skip_next = /* condition to skip or not the next item */;
}

没有声称这是最好的方法(甚至不是最干净的代码),但没有看到完整的代码,这是一种廉价的方法

PS:我甚至都试图理解整个"等级"问题,因为您正在解释不属于该问题的内容,并且只是回答了跳过foreach中下一项的方法。根据您的要求,可能有更好的方法。