@a63826ndrew
Студент, новичок в Python

Как преобразовать byte[] в List?

Здравствуйте!
Есть приложение и сервер, оба написаны на языке C#, приложенте отправляет серверу sql - запрос на взятие данных, сервер берет из базы данных (в моем случае это целая таблица) данные, преобразовывает данные для отправки приложению, приложение получает эти данные и с ними дальше можно производить какие-то манипуляции.
Представленный кусок кода вытаскивает из базы данных таблицу, преобразует ее в байты и отправляет приложению:
List<string[]> data = new List<string[]>();
                                while(reader.Read())
                                {
                                    data.Add(new string[4]);

                                    data[data.Count - 1][0] = reader[0].ToString();
                                    data[data.Count - 1][1] = reader[1].ToString();
                                    data[data.Count - 1][2] = reader[2].ToString();
                                    data[data.Count - 1][3] = reader[3].ToString();

                                    BinaryFormatter bin = new BinaryFormatter();
                                    MemoryStream sTream = new MemoryStream();
                                    bin.Serialize(sTream, data);
                                    if (stream.CanWrite)
                                    {
                                        byte[] array = sTream.ToArray();
                                        stream.Write(array, 0, array.Length);
                                        stream.Flush();
                                    }

приложение получило отправленные ему данные, и теперь полученные байты надо преобразовать в
List<string[]>
Как это правильно сделать?
  • Вопрос задан
  • 286 просмотров
Пригласить эксперта
Ответы на вопрос 2
ayazer
@ayazer
Sr. Software Engineer
в формулировке "Как преобразовать byte[] в List?" это невозможно сделать однозначно т.к. нет информации ни про кодировку, ни про разделитель строк. Для ютф8 + системный перенос это будет выглядеть так:

var arr = new byte[] { 50, 51, 52, 13, 10, 53, 54, 55};
var s = Encoding.UTF8.GetString(arr);

var sArr = s.Split(Environment.NewLine);


но т.к. данные сериализованы - действительно нужно их просто десериализовать
Ответ написан
Комментировать
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы