1

我有具有以下键和值的字典。我正在尝试打印字典,但在有空值的地方没有打印任何内容。如何在输出中打印“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}")));

这是我得到的输出:

id: 1
name: john
grade:
4

3 回答 3

5

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

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

输出

id: 1
name: john
grade: null
于 2020-07-14T17:09:02.197 回答
2

试一试。

Console.WriteLine(string.Join(Environment.NewLine, dic1.Select(a => $"{a.Key}: {a.Value ?? "null"}")));
于 2020-07-14T17:08:40.053 回答
0

您可以使用三元条件运算符

如果左边的表达式?计算为true,则:计算左边的表达式。如果false:则计算 的表达式右侧。

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

上面的内容比已经提到的空合并运算符要优雅一些。

Console.WriteLine(string.Join(Environment.NewLine, dic1.Select(a => $"{a.Key}: {a.Value?? "null"}")));
于 2020-07-15T01:34:52.563 回答