[英]How to convert nullable int to string
我需要将可为空的 int 转换为字符串
int? a = null;
string str = a.ToString();
我如何才能毫无例外地执行此操作? 我需要将字符串设为“Null”。 请指导我。
您可以简单地使用Convert.ToString()
来处理空值并且不会抛出异常
string str = Convert.ToString(a)
或者使用if
条件
if(a.HasValue)
{
string str = a.Value.ToString();
}
或使用?
三元运算符
string str = a.HasValue ? a.Value.ToString() : string.Empty;
如果您真的需要字符串为“Null”,如果a
为null
:
string str = a.HasValue ? a.Value.ToString() : "Null";
我也会创建一个扩展方法,但将其键入为 Nullable 而不是任何 T。
public static string ToStringOrEmpty<T>(this T? t) where T : struct
{
return t.HasValue ? t.Value.ToString() : string.Empty;
}
// usage
int? a = null;
long? b = 123;
Console.WriteLine(a.ToStringOrEmpty()); // prints nothing
Console.WriteLine(b.ToStringOrEmpty()); // prints "123"
我喜欢为此创建一个扩展方法,因为我最终会一遍又一遍地这样做
public static string ToStringNullSafe<T>(this T value)
{
if(value == null)
{
return null;
}
else
{
return value.ToString();
}
}
如果您愿意,您显然可以使用格式字符串创建重载。
if(a.HasValue())
{
return a.Value().ToString();
}
return string.Empty;
最短的答案是:
int? a = null;
string aString = a?.ToString() ?? "null";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.