是否有相当于Java标记的C#中断或变通方法

我正在将一些Java代码转换为C#并找到一些标记为“break”的语句(例如)

label1: while (somethingA) { ... while (somethingB) { if (condition) { break label1; } } } 

在C#中是否存在等价物(当前读数表示不是),如果没有,除了(比如说)具有bool标志以指示是否在每个循环结束时断开(例如)

 bool label1 = false; while (somethingA) { ... while (somethingB) { if (condition) { label1 = true; break; } } if (label1) { break; } } // breaks to here 

我感兴趣的是为什么C#没有这个,因为它似乎不是很邪恶。

您可以使用goto直接跳转到标签。

 while (somethingA) { // ... while (somethingB) { if (condition) { goto label1; } } } label1: // ... 

在类C语言中, goto通常最终会破坏嵌套循环,而不是跟踪布尔变量并在每个循环结束时重复检查它们。