string.Join元素顺序疑问:为何输出2019312330而非预期的3201912330?
问题原因解析
你这里的核心问题是搞混了string.Join方法的参数顺序!
先明确string.Join的工作逻辑:当你调用string.Join(分隔符, 元素1, 元素2, ...)时,它的作用是用指定的分隔符把后面所有元素依次连接起来,分隔符是插在元素与元素之间的,而不是作为前缀放在最开头。
从你的返回结果2019312330反推,当时的日期应该是2019年12月30日:
- 你传入的分隔符是
"3" - 待连接的元素是
2019、12、30
按照方法逻辑,拼接过程是:2019 + "3" + 12 + "3" + 30,最终自然得到2019312330,这完全符合方法的设计预期。
如果你想要得到3201912330(把"3"作为前缀),就得换个写法,比如:
// 先加前缀,再拼接无分隔符的日期元素 "3" + string.Join("", DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day)
或者用更简洁的字符串插值:
$"3{DateTime.Now.Year}{DateTime.Now.Month}{DateTime.Now.Day}"
这样就能得到你想要的结果啦~
内容的提问来源于stack exchange,提问作者dafie
相关产品推荐
相关产品推荐

