Вопрос

Может кто-нибудь сказать мне, как я могу преобразовать 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 в этом компоненте? Если нет, взгляните на компактный форматировщик

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top