C# 将Null追加到`StringBuilder`

C# 将Null追加到`StringBuilder`,c#,.net,xml,stringbuilder,C#,.net,Xml,Stringbuilder,我正在读取XML文件,并使用StringBuilder构建字符串。但有时我的元素.属性丢失,在这种情况下字符串为空 string key = (string)EventId.Descendants("properties").Elements("ID").Attributes("key").FirstorDefault(); 获取所有属性值后,我正在进行字符串生成: sb.Append(key.PadRight(33)); 但有时键的值可能为空,其中会出现错误: 在调用方法之前,请检查以确

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

string key  = (string)EventId.Descendants("properties").Elements("ID").Attributes("key").FirstorDefault();
获取所有属性值后,我正在进行字符串生成:

sb.Append(key.PadRight(33));
但有时
的值可能为空,其中会出现错误:

在调用方法之前,请检查以确定对象是否为null


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

我不确定这是否是您要查找的内容

if (key != null)
    sb.Append(key.PadRight(33));
else
    sb.Append("".PadRight(33));
你可以简单地写

 sb.Append((key ?? "").PadRight(33));
这个??被称为

它的工作包括计算左侧值,如果该值为null,则返回右侧值。或者换句话说,这是一条捷径

sb.Append((key == null ? "" : key).PadRight(33));
你可以做:
sb.Append(key?.PadRight(33))

这将不起作用。如果键为Null,则不会计算PadRight(33)。是的,我尝试过,但填充不起作用。我需要填充以保持可读性。