我有我想轉換爲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