每个循环回到第二个循环
本文关键字:循环 第二个 | 更新日期: 2023-09-27 18:09:09
在if语句执行后继续外循环的最优雅的方式是什么?我知道我可以使用goto
,但是我想避免它。
foreach (var pair in firstStrings)
{
foreach (var pair2 in secondStrings)
{
if (secondStrings.ContainsKey(pair.Key))
{
LogMessage(
pair.Value + " <----------> " + pair2.Value + " On Line " + (int)(pair.Key.Item1 + 1));
}
if (!(secondStrings.ContainsKey(pair.Key)))
{
LogMessage(
pair.Value + "Missing data " + " on line " + (int)(pair.Key.Item1 + 1) + " in file " + " " +
Path.GetFileName(pathTwo));
}
if (!(firstStrings.ContainsKey(pair2.Key)))
LogMessage(
pair2.Value + "Missing data " + " on line " + (int)(pair2.Key.Item1 + 1) + " in file " + " " +
Path.GetFileName(pathOne));
}
}
您可以使用break
。它打破了你现在所处的循环。
另外,在你的情况下,你应该使用else if
而不是多个if
。
foreach (var pair in firstStrings)
{
foreach (var pair2 in secondStrings)
{
if (secondStrings.ContainsKey(pair.Key))
{
LogMessage(
pair.Value + " <----------> " + pair2.Value + " On Line " + (int)(pair.Key.Item1 + 1));
break;
}
else if (!(secondStrings.ContainsKey(pair.Key)))
{
LogMessage(
pair.Value + "Missing data " + " on line " + (int)(pair.Key.Item1 + 1) + " in file " + " " +
Path.GetFileName(pathTwo));
break;
}
else if (!(firstStrings.ContainsKey(pair2.Key)))
{
LogMessage(
pair2.Value + "Missing data " + " on line " + (int)(pair2.Key.Item1 + 1) + " in file " + " " +
Path.GetFileName(pathOne));
break;
}
}
}
break;
将在大多数语言中打破内循环(在您的情况下跳出外循环)。
break语句可以工作,因为它只中断内部循环,而不是所有循环。