首页 > 解决方案 > 连接两个字符串,如果两者都为空,则为空

问题描述

我正在寻找一种解决方案来连接两个字符串值,null如果两者都是null. string1 + string2, string.Concat(string1, string2),都没有string.Join(string1, string2)工作。研究表明,这是因为这些方法在内部将 null 视为空字符串。

如何解决这个问题?

标签: c#.netstringconcatenation

解决方案


因为你的实际公式是

(a + b) ?? (c + d) // assumes that null + null == null in (a + b)

我建议将其重写为

a == null && b == null ? c + d : a + b

它提供了预期的结果:

  • 如果两者 都有a_ _bnullc + d
  • a + b否则

如果你想拥有null(不是空字符串)当所有a, b, c, d都是null

a == null && b == null ? 
  c == null && d == null 
    ? null 
    : c + d 
    : a + b;

推荐阅读