你们该如何打破这种情况的第二个循环?
我必须得到价值的组合 COMBINATION MIGHT有6个值。 但某些值为null或“” 我想做的是,获取所有可能的组合。 如果值是null或“”,我想跳到第二个循环,因为第一个条件设置了其余的组合(如果不是) 我要继续完成所有可能的组合。 在这个场景中,我的代码回到了最后一个循环。 有什么想法吗?
foreach (var item in result.ComboValues.FirstOrDefault(x => x.nameId == "Categoria1").selectValueText.Where(x => x.value != "").ToList())
{
foreach (var item2 in result.ComboValues.FirstOrDefault(x => x.nameId == "Categoria2").selectValueText.Where(x => x.value != "").ToList())
{
foreach (var item3 in result.ComboValues.FirstOrDefault(x => x.nameId == "Categoria3").selectValueText.Where(x => x.value != "").ToList())
{
foreach (var item4 in result.ComboValues.FirstOrDefault(x => x.nameId == "Categoria4").selectValueText.Where(x => x.value != "").ToList())
{
foreach (var item5 in result.ComboValues.FirstOrDefault(x => x.nameId == "Categoria5").selectValueText.Where(x => x.value == "").ToList())
{
foreach (var item6 in result.ComboValues.FirstOrDefault(x => x.nameId == "Categoria6").selectValueText.Where(x => x.value != "").ToList())
{
}
}
}
}
}
}
答案 0 :(得分:1)
在第二个循环中,创建一个用于存储是否找到空值的变量:
//at beginning of second loop
bool foundNull = false;
检查并找到空值时,请设置此变量:
//anywhere you need to check if a value is null
if (isSomeValueNull(someValue))
{
foundNull = true;
break;
}
在每个循环中(当然,第二个和第一个除外),在内循环之后,请检查以下内容:
//after every inner loop
if (foundNull == true)
break;
foreach (var item in result.ComboValues.FirstOrDefault(x => x.nameId == "Categoria1").selectValueText.Where(x => x.value != "").ToList())
{
foreach (var item2 in result.ComboValues.FirstOrDefault(x => x.nameId == "Categoria2").selectValueText.Where(x => x.value != "").ToList())
{
bool foundNull = false;
foreach (var item3 in result.ComboValues.FirstOrDefault(x => x.nameId == "Categoria3").selectValueText.Where(x => x.value != "").ToList())
{
foreach (var item4 in result.ComboValues.FirstOrDefault(x => x.nameId == "Categoria4").selectValueText.Where(x => x.value != "").ToList())
{
foreach (var item5 in result.ComboValues.FirstOrDefault(x => x.nameId == "Categoria5").selectValueText.Where(x => x.value == "").ToList())
{
foreach (var item6 in result.ComboValues.FirstOrDefault(x => x.nameId == "Categoria6").selectValueText.Where(x => x.value != "").ToList())
{
if (isSomeValueNull(someValue))
{
foundNull = true;
break;
}
}
if (foundNull == true)
break;
}
if (foundNull == true)
break;
}
if (foundNull == true)
break;
}
}
}