是否有一种优雅的方法来确定数字是否在最小值和最大值之间,如果没有设置最小值/最大值? (钳)

时间:2016-05-21 21:46:08

标签: c#

是否有一种优雅的方法来确定数字是否在最小值和最大值之间,如果没有设置最小值/最大值?加/减时有用,但不想低于零且高于限值。

有一些明确的解决方案,但它似乎是一个关键的功能,我认为应该有一些比使用两个if或两个三元运算符更干净和优雅。当然,人们总能创造自己的方法,但为什么要重新发明轮子。

这就是我的意思:

int limit(int lowerBound, int upperBound, int number)
{
   return (number < lowerBound) ? lowerBound : (number > upperBound) ? upperBound : number;
}

int limit2(int lowerBound, int upperBound, int number)
{
   if (number < lowerBound)
   {
      return lowerBound;
   }
   else if (number > upperBound)
   {
      return upperBound;
   }
   else
   {
      return number;
   }
}

[编辑]

抱歉,没有意识到这个词,所以我没有发现它曾被问过一次。但无论如何,这种单行程很棒,虽然它的目的可能并不是一见钟情,但它完全满足了我的需求。感谢任何发布它的人(但随后删除了他们的答案)。

int foo = Math.Max(Math.Min(upperBound, number), lowerBound);

0 个答案:

没有答案