转换 bool[] -> "1,0,0,1,1" 的简洁代码
Posted
技术标签:
【中文标题】转换 bool[] -> "1,0,0,1,1" 的简洁代码【英文标题】:Neat code to convert bool[] -> "1,0,0,1,1" 【发布时间】:2022-01-07 01:28:48 【问题描述】:如何使用尽可能少的代码行将布尔数组转换为像“1,0,0,1,1”这样的字符串? 我想将它转换为字符串,所以我有一个新字符串“@10011#”,我将通过串行端口发送它。 那么在 C# 中什么是简短的方法呢?
【问题讨论】:
string.Concat(bools.Select(x => x ? "1" : "0"))
?
你能告诉我们你尝试了什么,告诉我们你遇到了什么问题吗?
string s = "@" + string.Join(",", bools.Select(b => b?1:0)) + "#";
string.Join(',', bools.Select(Convert.ToInt32))
【参考方案1】:
你可以用这个
var toSerial = $@"@string.Join(",", arrayOfBool.Select(b => b ? "1" : "0"))#";
这只是一行代码,因此满足了“尽可能少的代码行”的要求,同时仍然足够冗长以提高可读性。任何更短的都更适合Code Golf。
【讨论】:
由于$@"@
的可读性,我建议使用常规的字符串连接"@" + string.Join...
。我想知道是不是$"@string.Join...
。以上是关于转换 bool[] -> "1,0,0,1,1" 的简洁代码的主要内容,如果未能解决你的问题,请参考以下文章