Как преобразовать битовую строку в логический массив

1

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

  • 0
    Почему так боится зацикливания?
  • 0
    Почему так боятся кратких решений?
Теги:
arrays
boolean
dayofweek

3 ответа

4
Лучший ответ

Нет, нет встроенного метода для превращения строки в булевский массив.

Вы должны сделать это, зациклив символы в строке и проверить каждый из них на значение, но вы можете легко сделать это с помощью метода Select:

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

Вы можете использовать LINQ для простого преобразования:

"0001100".Select(c => c == '1').ToArray();
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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню