byte []到ArrayList?
-
07-07-2019 - |
题
有人可以告诉我如何在Windows Mobile下使用C#将byte []转换为ArrayList?
稍后编辑:
-
这就像拥有一个包含自定义类型实例的ArrayList一样。此列表作为字节数组转发到数据库(转换为blob)(转换由数据库API完成);我想要的是将byte []还原为ArrayList;
-
.NET CF不提供BinaryFormatter;
醇>
解决方案
所有数组都继承ICollection,因此您只需使用
即可ArrayList list = new ArrayList(bytearray);
虽然我会使用通用List <!> lt; byte <!> gt;我使用相同的方法,因为这可以防止数组中每个字节值的装箱。虽然数组不会静态地继承相应类型的通用IList,但CLR会在运行时向每个数组实例添加相关实现(请参阅重要说明这里)
其他提示
你不能这样做吗?
ArrayList list = new ArrayList(byteArray);
ArrayList是无类型的,只应用于兼容性。
我建议你使用List <!> lt; byte <!> gt;:
var list = new List<byte>(byteArray);
编辑:如果数据库API进行转换,它不应该提供反序列化的方法吗?尝试使用Reflector了解转换的方式。
CF似乎不支持BinaryFormatter
。您是否控制发送该二进制数据的组件?你不能将数据转换为该组件中的Xml吗?如果没有看一下 Compact Formatter
不隶属于 StackOverflow