为什么string.Join(“”,new object [] {null,“ a”,null,“ b”})重新运行string.Empty?

时间:2019-06-14 08:01:35

标签: c# string object join

我注意到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),是否有合理的理由在框架中实现了此类异常?

请参见https://dotnetfiddle.net/uM9SVp

1 个答案:

答案 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

我建议您阅读一下,很有趣。