只有满足所有条件

时间:2014-06-26 19:55:39

标签: c# if-statement

我有这个代码,它采用2d数组并将它们转换为字符串以作为文件写入,它检查4个组合框,试图不写入具有所有4个comboBox值的行。发生的事情是它没有用任何组合框值写任何行。请帮助和谢谢

if (grid[i][3] != comboBox4.Text && grid[i][0] != comboBox1.Text && grid[i][1] != comboBox2.Text
            && grid[i][2] != comboBox3.Text)
            {
                string gridstring = String.Join(",", grid[i]);
                MessageBox.Show(gridstring);
                tw.WriteLine(gridstring);
            }

一些示例伪代码

line1 = a,b,c,d
line1 = b,c,d,e
line1 = e,f,g,h
line1 = h,I,j,k

如果行不包含a,b,c,d则写入,这样只会写入第1行,但是当前它会跳过第2行

1 个答案:

答案 0 :(得分:2)

最好检查可能的匹配,然后跳过该行,只包括那些作为规则例外的内容。这使代码更容易阅读。

if (grid[i][0] == comboBox1.Text 
 && grid[i][1] == comboBox2.Text
 && grid[i][2] == comboBox3.Text
 && grid[i][3] == comboBox4.Text)
        {
            continue;
        }
else
{
    string gridstring = String.Join(",", grid[i]);
    MessageBox.Show(gridstring);
    tw.WriteLine(gridstring);
}

如果没有看到gridcomboBox#变量中的内容,那么很难说其他什么可以打破这个。