将任何非整数或空值转换为1

时间:2014-07-23 14:27:20

标签: c# parsing extension-methods

我想编写扩展方法,如果提供任何非整数或空值,则返回1。 Int32.TryParse()将非整数或空值解析为0

我试过了

 public static int ToInt(this string text)
 {
     int num;
     return int.TryParse(text, out num) ? num : 1;
 }

2 个答案:

答案 0 :(得分:4)

只需要一个对象,并测试它是否为int:

static class Program
{
    static void Main()
    {
        int i = "124241".ParseToInt();       //124241
        int j = DateTime.Now.ParseToInt();   //-1
     }

     public static int ParseToInt(this object testItem)
     {
        int i;
        return Int32.TryParse(testItem.ToString(), out i) ? i : -1;
     }
}

1通常意味着成功。我不会因为失败而返回1

答案 1 :(得分:0)

您需要做的就是检查您的解析是否成功并正确设置值。

var input = "blah";
int myInt;
bool parseSuccessful = Int32.TryParse(input, out myInt);
if (!parseSuccessful)
{
    myInt = 1;
}