.Net C#String.Join如果元素值为null,如何输出"null"而不是空字符串?

Rea*_*tor 5 .net c# string null

根据String.JoinMSDN文档 "如果value中的任何元素为null,则使用空字符串."

代码我从DataTable中提取数据

rotationValues = string.Join<object>(", ",
    from r in rotationData.Rows.OfType<DataRow>() select r[5]);
Run Code Online (Sandbox Code Playgroud)

这将导致输出类似于:

8, 7, , 12, , , 13, 
Run Code Online (Sandbox Code Playgroud)

是否有任何方法可以简单地将"null"替换为空字符串,如下所示:

8, 7, null, 12, null, null, 13, null
Run Code Online (Sandbox Code Playgroud)

Jep*_*sen 8

你可以选择

r[5] ?? "null"
Run Code Online (Sandbox Code Playgroud)

而不仅仅是r[5].

此外,只需<object>在调用泛型方法时删除该部件.它仍然是IEnumerable<object>您加入的,但编译器将自动推断出类型参数.

评论后的补充:

r[5]可能会DBNull.Value.然后,这不是"真正的"空引用,但它的ToString实现返回"".因此,在这种情况下,string.Join文档并不严格相关.因此,尝试选择类似的东西

(r[5] == null || DBNull.Value.Equals(r[5])) ? "null" : r[5]
Run Code Online (Sandbox Code Playgroud)

或者可能

(r[5] == null || r[5] is DBNull) ? "null" : r[5]
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你.