我注意到string.Join(" ", new object[] { null, "a", null, "b"})
返回string.Empty
请注意,string.Join(" ", new string[] { null, "a", null, "b"})
返回a b
(正如我期望的那样)
串联字符时,事情变得恶毒:
string.Join(" ", new object[] { null, 'a', null, 'b'})
也会返回string.Empty
编辑:即使文档说了这一点(感谢@elgonzo),是否有合理的理由在框架中实现了此类异常?
答案 0 :(得分:7)
按照docs:
给来电者的记录
如果值的第一个元素是
null,
,则Join(String, Object[])
方法不连接值中的元素,而是返回Empty
。有许多解决此问题的方法。的 最简单的方法是将空值分配给 数组,如以下示例所示。
object[] values = { null, "Cobb", 4189, 11434, .366 };
if (values[0] == null) values[0] = String.Empty;
Console.WriteLine(String.Join("|", values));
// The example displays the following output:
// |Cobb|4189|11434|0.366
我建议您阅读一下,很有趣。