我想在C#中将字符串解析为可为null的int。即。我想找回字符串的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的建议,我的确知道这一点,但效果差不多。我更想知道是否有内置的框架方法可以直接解析为可为null的int?
int.TryParse 可能有点容易:
int.TryParse
public static int? ToNullableInt(this string s) { int i; if (int.TryParse(s, out i)) return i; return null; }
编辑 @Glenn int.TryParse已“内置到框架中”。它int.Parse是 将 字符串解析为int的方法。
int.Parse