【发布时间】:2015-01-18 12:19:14
【问题描述】:
在 VB 或 C# 中,是否有一种简洁的方法(无循环)将字符串转换为布尔数组?我有一串表示星期几的二进制值(“0001100”),并希望转换为布尔数组(假、假、假、真、真、假、假)。
【问题讨论】:
-
为什么这么害怕循环播放?
-
为什么这么害怕简洁的解决方案?
标签: c# arrays vb.net boolean dayofweek
在 VB 或 C# 中,是否有一种简洁的方法(无循环)将字符串转换为布尔数组?我有一串表示星期几的二进制值(“0001100”),并希望转换为布尔数组(假、假、假、真、真、假、假)。
【问题讨论】:
标签: c# arrays vb.net boolean dayofweek
不,没有将字符串转换为布尔数组的内置方法。
您必须通过循环字符串中的字符并检查每个字符的值来做到这一点,但您可以使用Select 方法轻松做到这一点:
bool[] days = daysString.Select(c => c == '1').ToArray();
【讨论】:
您可以使用 LINQ 进行简单的转换:
"0001100".Select(c => c == '1').ToArray();
【讨论】:
VB 版本
Dim dayStr As String = "0001100"
Dim daysB() As Boolean
'using LINQ
daysB = dayStr.Select(Function(ch) ch = "1").ToArray
'using loop
Dim daysB1(dayStr.Length - 1) As Boolean
For idx As Integer = 0 To dayStr.Length - 1
daysB1(idx) = dayStr(idx) = "1"
Next
【讨论】: