将Null追加到`StringBuilder`

use*_*720 3 .net c# xml stringbuilder

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

string key  = (string)EventId.Descendants("properties").Elements("ID").Attributes("key").FirstorDefault();
Run Code Online (Sandbox Code Playgroud)

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

sb.Append(key.PadRight(33));
Run Code Online (Sandbox Code Playgroud)

但有时值key可以为null,它会产生错误:

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

StringBuilder即使值为null,我想追加空字符串.

Ste*_*eve 9

你可以简单地写

 sb.Append((key ?? "").PadRight(33));
Run Code Online (Sandbox Code Playgroud)

?? ?? 被称为Null-Coalescing运算符

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

sb.Append((key == null ? "" : key).PadRight(33));
Run Code Online (Sandbox Code Playgroud)