【问题标题】:Why does string.Join(" ", new object[] { null, "a", null, "b"}) retruns string.Empty? [closed]为什么 string.Join(" ", new object[] { null, "a", null, "b"}) 会返回 string.Empty? [关闭]
【发布时间】:2019-10-28 20:11:21
【问题描述】:

我注意到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

【问题讨论】:

  • 破解Console.WriteLine(string.Join(",",(new object[] { null, "a", null, "b"}).Select(s=>s)));
  • 我投票结束这个问题作为离题,因为看到的行为是预期的,正如文档所述。
  • @CamiloTerevinto 您是否关闭了其他数百万个在文档中也有答案的问题?

标签: c# string object join


【解决方案1】:

根据docs

来电者须知

如果值的第一个元素是null,,则Join(String, Object[]) 方法不会连接 values 中的元素,而是返回 Empty。有许多解决此问题的方法可用。这 最简单的方法是将 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

我建议你读一读,很有趣。

【讨论】:

  • 这个答案很好:)
  • @CamiloTerevinto 这篇文章的开头是文档的链接。那不是抄袭。这为人们节省了时间来准确显示他们所追求的信息,而无需扫描将来可能会在某个时候甚至消失的页面,从而使 awnser 无用
  • @CamiloTerevinto:除了问题结束之外,将其标记为剽窃是非常不合适的。 Bolkay 与来源联系,并没有假装他们是作者。如果有的话,SO(和 SE)明确禁止仅链接答案,并希望将相关信息复制到答案中,因为链接可能会中断。
  • “这个问题似乎与编程无关”永远不要更改 StackOverflow。大声笑,荒谬的改装。
  • @CamiloTerevinto:你在回避这个话题。我专门从“问题关闭”开始,并回复了您对抄袭的指控。如果有必要关闭问题(我认为这值得商榷,但我愿意让你从怀疑中受益),那就没有理由肆意指责人们抄袭。如果有的话,bolkay 遵守了 SO 要求以避免仅链接的答案。
猜你喜欢
  • 2015-05-29
  • 2017-05-25
  • 2013-06-11
  • 2011-07-13
  • 2013-08-09
  • 2013-06-05
  • 2014-05-23
  • 2011-01-23
  • 1970-01-01
相关资源
最近更新 更多