我使用了太多的if语句

0md85ypi  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(348)

这个问题在这里已经有答案了

if语句太多(4个答案)
两年前关门了。
我写了一点c#,但我相信这17条if语句可以简化。我已经试了很多次了,但到目前为止什么都不管用。这是一个windows窗体应用程序,只供想知道的人使用。

MySqlCommand cmdcount = new MySqlCommand("Select count(vak_id) from bezet", conn);
        var counter = cmdcount.ExecuteScalar();
        int count = 0;
        count = Convert.ToInt32(counter);

        while(count > 0)
        {
            MySqlCommand cmdklant = new MySqlCommand("Select klant_id from bezet where vak_id = @id", conn);
            cmdklant.Parameters.AddWithValue("@id", count);
            var spotinfo = cmdcount.ExecuteScalar();
            string infospot = Convert.ToString(spotinfo);

            if (infospot == "")
            {
                if (count == 8)
                {
                    P8.BackColor = Color.Green;
                }
                else if(count == 7)
                {
                    P7.BackColor = Color.Green;
                }
                else if (count == 6)
                {
                    P6.BackColor = Color.Green;
                }
                //etc...
            }
            else
            {
                //the same but then color.red
            }
            count--;
        }
ffdz8vbo

ffdz8vbo1#

所以你加载一个计数器,然后为每个相关的“p”设置基于其他条件的颜色
把这些“p”字放到一个数组里怎么样:

int count = ...
new [] { P1, P2, P3, P4 .. P8 }
.Take(count)
.Select((p, idx) => new { P = p, Index = idx})
.ToList()
.ForEach(pIndexPair => 
 {
      var infoSpot = LoadInfoSpot(pIndexPair.Index);
      pIndexPair.P.BackColor = string.IsNullOrEmpty(infospot) ? Color.Green : Color.Red;
 });

相关问题