小编典典

如何将字符串解析为可为空的 int

all

我想在 C# 中将一个字符串解析为一个可为空的 int。IE。如果无法解析,我想取回字符串的 int 值或 null 。

我有点希望这会奏效

int? val = stringVal as int?;

但这行不通,所以我现在这样做的方式是我已经编写了这个扩展方法

public static int? ParseNullableInt(this string value)
{
    if (value == null || value.Trim() == string.Empty)
    {
        return null;
    }
    else
    {
        try
        {
            return int.Parse(value);
        }
        catch
        {
            return null;
        }
    }
}

有没有更好的方法来做到这一点?

编辑: 感谢 TryParse 的建议,我确实知道这一点,但结果大致相同。我更想知道是否有内置的框架方法可以直接解析为可为空的 int?


阅读 82

收藏
2022-04-08

共1个答案

小编典典

int.TryParse可能更容易一点:

public static int? ToNullableInt(this string s)
{
    int i;
    if (int.TryParse(s, out i)) return i;
    return null;
}

编辑 @Glennint.TryParse是“内置于框架中的”。它int.Parse 字符串解析为整数的方法。

2022-04-08