我们遵循的基本思路是与范围在C#中检查条件(不使用if else语句)
if (i > 0 && i < 100) {
} else if (i > 100 && 1 < 150) {
}
这是范围检查的基本想法..
有没有检查什么好办法这些类型的条件。
在此先感谢您的帮助!
我们遵循的基本思路是与范围在C#中检查条件(不使用if else语句)
if (i > 0 && i < 100) {
} else if (i > 100 && 1 < 150) {
}
这是范围检查的基本想法..
有没有检查什么好办法这些类型的条件。
在此先感谢您的帮助!
INT endX = 200;
点击下面的链接,你会得到什么@Steve
var switchCond = new Dictionary<Func<int, bool>, Action>
{
{ x => x <= 290 ,() => endX=244 },
{ x => x <= 530,() => endX=488 },
{ x => x <= 790 ,() => endX=732 },
{ x => x <=1000 || x > 976 ,() => endX=976 }
};
switchCond.First(sw => sw.Key(endX)).Value();
使用三元运算
var range =
i < 100? "Range1":
i < 150? "Range2":
i < 200? "Range3":
i < 250? "Range4":
i < 300? "Range5":
"Range6";
这是实施例只显示技术。显然,您必须将其调整到您的代码目标和适当的范围定义。 (顺便说一下,在你的例子,使用if- else if
,你的代码错过100,你需要决定哪些范围100应列入,并改变不平等的运营商之一,要么<=
或>=
值。
不确定这是否正确。对于'100',这种行为与OP的例子不同(但是,这个概念变得清晰了)。 –
OPs示例不全面,值100根本没有被覆盖。 –
你可以有开关结构 “手柄” 范围通过使用你的边界的List
的:
List<int> bounds = new List<int>() {int.MinValue, 0, 100, 150, 200, 300, int.MaxValue };
switch (bounds.IndexOf(bounds.Last(x => x < j)))
{
case 0: // <=0
break;
case 1: // > 0 and <=100
break;
case 2: // > 100 and <= 150
break;
case 3: // > 150 and <=200
break;
case 4: // > 200 and <=300
break;
case 5: // >300
break;
}
,你可能有一些额外的检查添加到
你为什么不喜欢_if ......别的..._声明? – Steve
你应该明确定义'这些类型的条件。'# – Badiparmagi
http://stackoverflow.com/questions/20147879/switch-case-can-i-use-a-range-instead-of-a-one-number –