C# 如何将位字符串转换为布尔数组

C# 如何将位字符串转换为布尔数组,c#,arrays,vb.net,boolean,dayofweek,C#,Arrays,Vb.net,Boolean,Dayofweek,在VB或C#中,是否有一种简洁的方法(无循环)将字符串转换为布尔数组?我有一个表示一周中几天的二进制值字符串(“0001100”),希望将其转换为布尔数组(false、false、false、true、true、false、false)。否,没有将字符串转换为布尔数组的内置方法 您必须通过循环字符串中的字符并检查每个字符的值来完成此操作,但您可以使用Select方法轻松完成此操作: bool[] days = daysString.Select(c => c == '1').ToArray

在VB或C#中,是否有一种简洁的方法(无循环)将字符串转换为布尔数组?我有一个表示一周中几天的二进制值字符串(“0001100”),希望将其转换为布尔数组(false、false、false、true、true、false、false)。

否,没有将字符串转换为布尔数组的内置方法

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

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

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

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

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

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

"0001100".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
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

为什么如此害怕循环?为什么如此害怕简洁的解决方案?为什么如此害怕循环?为什么如此害怕简洁的解决方案?