如何将位串转换为布尔阵列

时间:2015-01-18 12:19:14

标签: c# arrays vb.net boolean dayofweek

在VB或C#中,有一种简洁的方法(没有循环)将字符串转换为布尔数组吗?我有一串二进制值表示一周中的几天(" 0001100")并希望转换为布尔数组(false,false,false,true,true,false,false)。

3 个答案:

答案 0 :(得分:4)

不,没有用于将字符串转换为布尔数组的内置方法。

您必须通过循环字符串中的字符并检查每个字符的值来做到这一点,但您可以使用Select方法轻松完成此操作:

bool[] days = daysString.Select(c => c == '1').ToArray();

答案 1 :(得分:1)

您可以使用LINQ简单地转换:

"0001100".Select(c => c == '1').ToArray();

答案 2 :(得分:0)

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