如何将nullable int转换为string

时间:2014-02-05 15:34:40

标签: c#

我需要将nullable int转换为string

int? a = null;
string str = a.toString();

如何在没有例外的情况下执行此操作? 我需要将字符串设置为“Null”。  请指导我 提前谢谢。

6 个答案:

答案 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)

如果anull,您确实需要字符串为“空”:

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";