我有我想转换为byte[]
对象数组到字节数组
我List
这样定义对象的List
:
List<object> objects = new List<object>
{
"obj1", "obj2", "obj2"
};
是否有可能这个列表转换为byte[]
在一些干净的方式?该列表仅包含base64
串
所有帮助表示赞赏
蛋糕我有我想转换为byte[]
对象数组到字节数组
我List
这样定义对象的List
:
List<object> objects = new List<object>
{
"obj1", "obj2", "obj2"
};
是否有可能这个列表转换为byte[]
在一些干净的方式?该列表仅包含base64
串
所有帮助表示赞赏
蛋糕海贼王:
objects.Select(s => Convert.FromBase64String(s)).SelectMany(i => i).ToArray();
如果objects
真是List<Object>
作为@AustinSalonen指出,相对于一个List<String>
,你需要请确保您只有第一个字符串:
objects.OfType<String>().Select(s => Convert.FromBase64String(s)).SelectMany(i => i).ToArray();
或演员表:
objects.Cast<String>().Select(s => Convert.FromBase64String(s)).SelectMany(i => i).ToArray();
感谢您的回答。是的,我希望将所有数据整合到一个大阵列中。 – 2012-03-19 18:13:09
编辑,见上面 – 2012-03-19 18:15:48
非常感谢。我还有最后一个问题,如果最后一个不是base64字符串的项目呢?如果它没有太大的价值,我想为非base64项目提供解决方案。可能吗? – 2012-03-19 18:22:46
这应该字符串的工作:
System.Text.Encoding enc = System.Text.Encoding.ASCII; // Choose the right encoding here
List<byte[]> list = objects.Select(o=>enc.GetBytes(o.ToString()).ToList();
这些字符串是base64 – 2012-03-19 18:10:05
那么,为什么不'objects'一个'名单'? –
2012-03-19 18:07:24
“干净”是什么意思?您是否考虑过使用.NET框架提供的一种序列化机制,例如二进制或SOAP格式? – 2012-03-19 18:08:09