Преобразуйте этот список в массив байтов
Всем привет
Мне нужно преобразовать этот список в массив байтов для отправки через последовательный порт. Но когда я пытаюсь использовать DataList.SelecMany команда I возвращает ошибку: "Enumerable.SelectMany ..." не может быть выведен на основе использования. Попробуйте явно указать аргументы типа".
что я забыл?
Что я уже пробовал:
List<string> listaDados = new List<string>(); // int szCmds, wdCnt; String stValue; MessageBox.Show("Print Cheque "); int szCmds, wdCnt; String stValue; stValue = "748"; //Banco listaDados.Add("0x1B"); listaDados.Add("0xA2"); listaDados.Add(stValue); byte[] data = listaDados.SelectMany(BitConverter.GetBytes).ToArray(); serialPort.Write(data, 0, data.Length);
Richard MacCutchan
Почему бы не использовать StringBuilder вместо списка? Кроме того, строки "0x1B" и "0xA2" не будут преобразовываться в свои байтовые значения, как вы ожидаете, вам нужно использовать соответствующие escape-последовательности "\x1B" и "\xA2".
Gilcecler Carneiro
Ну, пример, который я взял, использовал список
"https://www.codeproject.com/Questions/1130049/How-to-write-serial-port-using-Csharp"
Maciej Los
Что ж... Используйте виджет "ответить" (справа от имени пользователя/Ника), чтобы быть уверенным, что система уведомлений сообщит пользователю о вашем ответе.
Richard MacCutchan
Это не значит, что она правильная.
Gilcecler Carneiro
об Escape-последовательностях меня например оригинал был на Java.
Я исправлюсь
Gilcecler Carneiro
принял предложение ;)
CPallini
Почему вы используете список строк? Такие строки представляют собой шестнадцатеричное представление байтов. Почему бы вам не использовать непосредственно числа (возможно, шестнадцатеричные ilterals)?
Видеть
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/integral-numeric-types