如果字典使用 LINQ,如何打印空值

Kev*_*965 1 c# null dictionary conditional-operator null-coalescing

我有包含以下键和值的字典。我正在尝试打印字典,但在有空值的地方没有打印任何内容。如何在输出中打印“null”?

Dictionary<string, object> dic1 = new Dictionary<string, object>();
            dic1.Add("id", 1);
            dic1.Add("name", "john");
            dic1.Add("grade", null);

            Console.WriteLine(string.Join(Environment.NewLine, dic1.Select(a => $"{a.Key}: {a.Value}")));
Run Code Online (Sandbox Code Playgroud)

这是我得到的输出:

id: 1
name: john
grade:
Run Code Online (Sandbox Code Playgroud)

Ruf*_*s L 5

在这种情况下,您可以使用空合并运算符( ??),如果不是null,则返回其左侧操作数的值,否则计算右侧操作数并返回其结果。所以我们只需要"null"在右侧添加:

Console.WriteLine(string.Join(Environment.NewLine, 
    dic1.Select(a => $"{a.Key}: {a.Value ?? "null"}")));
Run Code Online (Sandbox Code Playgroud)

输出

id: 1
name: john
grade: null
Run Code Online (Sandbox Code Playgroud)