将Null追加到`StringBuilder`

时间:2017-06-24 06:42:00

标签: c# .net xml stringbuilder

我正在读取XML文件并使用StringBuilder构建字符串。但有时我的Element.Attributes丢失,在这种情况下字符串为空。

string key  = (string)EventId.Descendants("properties").Elements("ID").Attributes("key").FirstorDefault();

获得所有attribue值后,我正在进行字符串构建:

sb.Append(key.PadRight(33));

但有时key的值可以为null,其中会出错:

  

在调用方法

之前检查以确定对象是否为null

我想将空字符串附加到StringBuilder,即使该值为空。

3 个答案:

答案 0 :(得分:9)

你可以简单地写

 sb.Append((key ?? "").PadRight(33));

??被称为Null-Coalescing operator

它的工作在于评估左侧值,如果该值为null,则返回右侧值。或者换句话说,它是

的捷径
sb.Append((key == null ? "" : key).PadRight(33));

答案 1 :(得分:1)

我不确定这是否是您要找的?

if (key != null)
    sb.Append(key.PadRight(33));
else
    sb.Append("".PadRight(33));

答案 2 :(得分:1)

你可以这样做: sb.Append(key?.PadRight(33));