如果没有做出任何决定?

时间:2010-09-16 01:09:22

标签: c# if-statement logic conditional-statements choice

看看这个:

foreach(Object Item in comboBox1.Items)
{
    if (Convert.ToString(Item) == Convert.ToString(dsGirasol.Tables["DatosGirasol"].Rows[contador][0]))
    {
        repetido = true;
        break;
    }
    else
    {
        repetido = false;
    }
}​

请注意,两个可能的输出都有一个消息框。但是,当我运行它时,根本没有任何内容,其余的代码继续运行...

编辑:添加了周围的循环!

3 个答案:

答案 0 :(得分:2)

为什么你想要break?试试这个:

if (Convert.ToString(Item) == Convert.ToString(dsMaiz.Tables["DatosMaiz"].Rows[contador][0]))
{
    repetido = true;
    MessageBox.Show("Encontre uno igual");
}
else
{
    repetido = false;
    MessageBox.Show("Encontre uno diferente");
}

答案 1 :(得分:1)

在评估相等性之前,请尝试评估条件的左侧和右侧部分。 我只能想象它必须抛出一个被默默捕获的异常。 这将帮助您调试问题。

例如:

var left = Convert.ToString(Item);
var right = Convert.ToString(dsMaiz.Tables["DatosMaiz"].Rows[contador][0]);
if (left == right)
{
    ...
}
else
{
  ...
}

编辑: 现在我看到你正在使用循环,回到基础,循环甚至运行? 低技术调试,检查组合框中是否有一些项目,并且您正在引用您想要的组合:)

答案 2 :(得分:0)

好的,这很奇怪,我设法通过将每个循环放在一个单独的方法来解决问题,现在它可以工作了,感谢你的帮助!