байт [] в ArrayList?
-
07-07-2019 - |
Вопрос
Может кто-нибудь сказать мне, как я могу преобразовать byte [] в ArrayList с помощью C # под Windows Mobile?
Позднее редактировать:
<Ол>это будет похоже на ArrayList, содержащий экземпляры пользовательского типа. Этот список попадает в базу данных (в большой двоичный объект) в виде байтового массива (преобразование выполняется API базы данных); Я хочу вернуть байт [] в ArrayList;
.NET CF не предоставляет двоичный формат;
Решение
Все массивы наследуются от ICollection, поэтому вы можете просто использовать
ArrayList list = new ArrayList(bytearray);
хотя я бы использовал общий список < byte > Я использую тот же метод, который предотвращает упаковку каждого байта в массиве. Хотя массивы не наследуются статически от общего IList для соответствующего типа, CLR добавляет соответствующие реализации для каждого экземпляра массива во время выполнения (см. Важное примечание здесь )
Другие советы
Разве вы не можете просто сделать это?
ArrayList list = new ArrayList(byteArray);
ArrayList не типизирован и должен использоваться только для совместимости.
Я предлагаю вам использовать список < byte >:
var list = new List<byte>(byteArray);
Изменить. Если API-интерфейс базы данных выполняет преобразование, не должен ли он обеспечить десериализацию? Попробуйте использовать Reflector, чтобы узнать, как выполняется преобразование.
Кажется, CF не поддерживает BinaryFormatter
. Контролируете ли вы компонент, который отправляет эти двоичные данные? Разве вы не можете преобразовать данные в XML в этом компоненте? Если нет, взгляните на компактный форматировщик