Число знаков в каждой строке меняется. Convert.ToByte(string) работает в случае если sting = "0", "1". Но не работает в других. string str = "010010101101" byte byt = Convert.ToByte(str[0]); bool bol = Convert.ToBoolean(byt); //str[0] = 0 byt = 48 bol = True так как str[0] это char = '0' и его юникод 48 в десятичной системе.
и как символ '0' превратить в false? Сравнением? конструкция громоздкая получается. for (int i = 0; i < str.Length; i++) { if (str[i] == '0') bol[i] = false; else bol[i] = true; } хотя...
IRQ
Оракул
(52925)
Да тут миллион способов есть. А с учётом того, что строка реализует IEnumerable, то на LINQ вообще можно написать так:
var weekdaysEnabled = weekdayFrequency.Select(chr => chr == '1').ToArray();
Да и просто погуглить по строке "C# convert string to bool array", куча ссылок на тот же stackoverflow.
Convert.ToByte(string) работает в случае если sting = "0", "1". Но не работает в других.
string str = "010010101101"
byte byt = Convert.ToByte(str[0]);
bool bol = Convert.ToBoolean(byt);
//str[0] = 0 byt = 48 bol = True так как str[0] это char = '0' и его юникод 48 в десятичной системе.