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



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

我试过了

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

取一个对象,并测试它是否是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

您所需要做的就是检查您的解析是否成功,并设置适当的值。

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

最新更新