如何为C#中的if语句指定一系列数字?

时间:2013-11-03 20:37:07

标签: c#

我希望if语句在某个数字值范围内激活,但它不起作用。目前编码:

if (DateTime.Now.Minute == 20 - 39)
            lblMA2.BackColor = Color.Blue;
        else
            lblMA2.BackColor = Color.Gray;

发布时的当前时间在该范围内,我的标签保持灰色。插入精确值时,相同的代码可以正常工作。当分钟击中时它会变成蓝色,然后在它通过时变成灰色。我插入了范围,什么都没有。

任何人都可以帮助我让它工作而无需输入额外的36行代码吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

使用if (Enumerable.Range(20, 19).Contains(DateTime.Now.Minute))

目前您正在将DateTime.Now.Minute20 - 39 -19进行比较。

我的解决方案创建一个包含20到39之间值的集合,并检查当前分钟是否在此集合中。

或者您可以检查分钟是否超过20且低于39(这应该是首选,请参阅评论中Konrad的解释)。

答案 1 :(得分:3)

要检查一个数字是否在特定范围内,请在两个条件下使用&& - 小于和大于,如下所示:

if (DateTime.Now.Minute >= 20 && DateTime.Now.Minute <= 39) {
    ...
}

&&表示“AND”。当左侧评估为true时,复合条件评估为true,然后右侧评估为true。仅当左侧为true时才评估右侧。