在处理情感分析中的否定时,我遇到了这个问题。我希望编译器跳过" 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
答案 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
中下一项的方法。根据您的要求,可能有更好的方法。