Есть небольшой кусок кода, его смысл заключался в том чтобы из массива (в котором приходили подобные цифры 123.1.512.61 в разных комбинациях) передавать в textbox только цифры (пример: 123 в firstBox.Text; 1 в secondBox.Text и т.д.). Но что-то пошло не так, у меня на данный момент приходят все подряд по одному символу (1; 2; 3; .; и тд.)
Как это исправить?
public void SetByteArray(string userOutput)
{
byte[] userOutputBytes = new byte[4];
if (userOutput != null)
{
userOutputBytes = userOutput.Split(new[] {'.'}, StringSplitOptions.RemoveEmptyEntries)
.Select(s => Convert.ToByte(s, 8))
.ToArray();
}
else
{
userOutput = "123.0.10.321";
userOutputBytes = userOutput.Split(new[] {'.'}, StringSplitOptions.RemoveEmptyEntries)
.Select(s => Convert.ToByte(s, 8))
.ToArray();
}
firstBox.Text = Convert.ToString(userOutput[0]);
secondBox.Text = Convert.ToString(userOutput[1]);
thirdBox.Text = Convert.ToString(userOutput[2]);
fourthBox.Text = Convert.ToString(userOutput[3]);
}
Ошибка в этой строчке
userOutput[0]
В этой операции вы берёте 0 символ из userOutput, который равен "123.0.10.321".
Получаете "1".
Вам же надо брать первый элемент массива токенов, который вы получаете позже, а не строки.
В вашем коде это userOutputBytes
.
То есть вы перепутали входные и выходные данные userOutputBytes
и userOutput
.
Кроме того, вы из строк делаете массив байтов Convert.ToByte(s, 8)
, а потом обратно преобразуете в строчку Convert.ToString
не вижу в этом смысла.
PS: Основную функцию надо за if
вынести.
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Подскажите пожалуйста, как мне установить высоту при начальной загрузки таблицы DataGrid с использованием DoubleAnimation, чтобы она не уходила за рамки...
Есть выпадающий список находящийся в ячейке таблицы с ФИО сотрудников, как сделать чтобы в определенные ячейки вывелись все остальные поля...