В VB или С# существует ли сжатый способ (без циклов) для преобразования строки в булевский массив? У меня есть строка двоичных значений, представляющих дни недели ("0001100"), и вы хотите преобразовать в логический массив (false, false, false, true, true, false, false).
Нет, нет встроенного метода для превращения строки в булевский массив.
Вы должны сделать это, зациклив символы в строке и проверить каждый из них на значение, но вы можете легко сделать это с помощью метода 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