我需要将nullable int转换为string
int? a = null;
string str = a.toString();
如何在没有例外的情况下执行此操作? 我需要将字符串设置为“Null”。 请指导我 提前谢谢。
答案 0 :(得分:26)
您可以简单地使用处理空值的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;
答案 1 :(得分:2)
如果a
为null
,您确实需要字符串为“空”:
string str = a.HasValue ? a.Value.ToString() : "Null";
答案 2 :(得分:0)
我喜欢为此创建一个扩展方法,因为我最后一遍又一遍地执行它
public static string ToStringNullSafe<T>(this T value)
{
if(value == null)
{
return null;
}
else
{
return value.ToString();
}
}
如果愿意,您显然可以使用格式字符串创建重载。
答案 3 :(得分:0)
我也创建了一个扩展方法,但是从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"
答案 4 :(得分:0)
if(a.HasValue())
{
return a.Value().ToString();
}
return string.Empty;
答案 5 :(得分:0)
最短的答案是:
int? a = null;
string aString = a?.ToString() ?? "null";