我有以下内容:
if (settingsAgeFrom > 0 && settingsAgeTo > 0)
{
if (!Enumerable.Range(settingsAgeFrom, settingsAgeTo).Contains(age))
{
canContact = false;
}
}
这基本上会检查年龄是否在settingsAgeFrom和settingsAgeTo
之间settingsAgeFrom = 18
settingsAgeTo = 20
age = 26
应该返回false并将canContact设置为false,而是跳过它说明它有效吗?
我在这里错过了什么吗?
所有三个变量都是int类型。
答案 0 :(得分:7)
你弄错了,Enumerable.Range第二个参数为count
,它应该是: -
if (!Enumerable.Range(settingsAgeFrom, (settingsAgeTo - settingsAgeFrom) + 1)
.Contains(age))
因此,您的范围将是18 - 20而不是18 - 37(您当前的代码正在生成)。
答案 1 :(得分:0)
Enumerable.Range(...)不是(from,to),但是(from,count),试试这个:
if (settingsAgeFrom > 0 && settingsAgeTo > 0)
{
if (!Enumerable.Range(settingsAgeFrom, settingsAgeTo-settingsAgeFrom).Contains(age))
{
canContact = false;
}
}
答案 2 :(得分:0)
if (settingsAgeFrom > 0 && settingsAgeTo > 0)
{
canContact = (settingsAgeFrom >= age && age <= settingsAgeTo);
}