检查包含数字的字符串值的范围

6
我有一个值列表,例如:G1、G2、G2.5、G3、G4等。如何在C#中检查这些值的范围,比如我想知道某个值是否在G1和G2.5之间?
在Vb.net中,我可以这样做:
        Select Case selectedValue
           Case "G1" To "G2.5" //This would be true for G1, G2, and G2.5

我该如何在c#中实现这个?

3个回答

4
  1. selectedValue中删除G
  2. 将剩余部分解析为十进制数
  3. 根据十进制值实现您的逻辑

-

var number = decimal.Parse(selectedValue.Replace("G", ""));
if (number >= 1.0m && number <= 2.5m)
{
    // logic here
}

谢谢,我认为这些答案都可以,但是你的代码最少。非常感谢。 - TMan

3
要进行字符串比较,你可以这样做:

只需要这样

if (string.Compare(selectedValue, "G1") >= 0 && string.Compare(selectedValue, "G2.5") <= 0)
{
    ...
}

但是要进行数字比较,你需要将其解析为数字(doubledecimal)。

var selectedValueWithoutG = selectedValue.Substring(1);
var number = decimal.Parse(selectedValueWithoutG);
if (number >= 1D && number <= 2.5D)
{
    ...
}

2

首先,您需要解析您的值:

var number = decimal.Parse(selectedValue.Substring(1))

那么您可以使用以下扩展方法:
bool Between(this int value, int left, int right)
{ 
    return value >= left && value <= right; 
}

if(number.Between(1, 2.5)) {.....}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接