C# 对象数组到字节数组

C# 对象数组到字节数组,c#,bytearray,C#,Bytearray,我有一个对象的列表,我想将其转换为字节[] 我的列表定义如下: List<object> objects = new List<object> { "obj1", "obj2", "obj2" }; List objects=新列表 { “obj1”、“obj2”、“obj2” }; 是否可以以某种干净的方式将此列表转换为字节[]?该列表仅包含base64字符串 感谢所有帮助小菜一碟: objects.Select(s => Convert.FromB

我有一个对象的
列表
,我想将其转换为
字节[]

我的
列表
定义如下:

List<object> objects = new List<object>
{
     "obj1", "obj2", "obj2"
};
List objects=新列表
{
“obj1”、“obj2”、“obj2”
};
是否可以以某种干净的方式将此列表转换为
字节[]
?该列表仅包含
base64
字符串

感谢所有帮助

小菜一碟:

objects.Select(s => Convert.FromBase64String(s)).SelectMany(i => i).ToArray();
如果像@AustinSalonen指出的那样,
对象实际上是一个
列表,而不是
列表
,那么您需要首先确保只有字符串:

objects.OfType<String>().Select(s => Convert.FromBase64String(s)).SelectMany(i => i).ToArray();
objects.OfType().Select(s=>Convert.FromBase64String(s)).SelectMany(i=>i.ToArray();
或演员:

objects.Cast<String>().Select(s => Convert.FromBase64String(s)).SelectMany(i => i).ToArray();
objects.Cast().Select(s=>Convert.FromBase64String(s)).SelectMany(i=>i.ToArray();
小菜一碟:

objects.Select(s => Convert.FromBase64String(s)).SelectMany(i => i).ToArray();
如果像@AustinSalonen指出的那样,
对象实际上是一个
列表,而不是
列表
,那么您需要首先确保只有字符串:

objects.OfType<String>().Select(s => Convert.FromBase64String(s)).SelectMany(i => i).ToArray();
objects.OfType().Select(s=>Convert.FromBase64String(s)).SelectMany(i=>i.ToArray();
或演员:

objects.Cast<String>().Select(s => Convert.FromBase64String(s)).SelectMany(i => i).ToArray();
objects.Cast().Select(s=>Convert.FromBase64String(s)).SelectMany(i=>i.ToArray();

这应该适用于字符串:

System.Text.Encoding enc = System.Text.Encoding.ASCII;  // Choose the right encoding here
List<byte[]> list = objects.Select(o=>enc.GetBytes(o.ToString()).ToList();
System.Text.Encoding enc=System.Text.Encoding.ASCII;//在这里选择正确的编码
List=objects.Select(o=>enc.GetBytes(o.ToString()).ToList();

这应该适用于字符串:

System.Text.Encoding enc = System.Text.Encoding.ASCII;  // Choose the right encoding here
List<byte[]> list = objects.Select(o=>enc.GetBytes(o.ToString()).ToList();
System.Text.Encoding enc=System.Text.Encoding.ASCII;//在此处选择正确的编码
List=objects.Select(o=>enc.GetBytes(o.ToString()).ToList();

那么为什么
对象不属于
列表
?你说的“干净”是什么意思?你有没有考虑过使用.NET framework提供的一种序列化机制,例如二进制或SOAP格式?那么
对象不属于
列表
?你说的“干净”是什么意思?您是否考虑过使用.NET framework提供的其中一种序列化机制,例如二进制或SOAP格式?谢谢您的回答。是的,我希望所有数据都放在一个大数组中。非常感谢。我还有最后一个问题,如果最后一个字符串中的项不是base64字符串,该怎么办?如果它不是太真实,我希望如此为非base64项提供解决方案。是否可能?如果不是base-64,那么它们是什么?您最初的问题非常明确地指出“列表仅包含base64字符串”非常抱歉造成混淆。这些项目可能是普通字符串。应该使用什么格式将它们转换为字节?UTF-8?ASCII?Base-64具有特殊含义-这意味着字符是特定字节序列的编码表示。ASCII表示其他内容。UTF-8(通常称为unicode)再次表示其他内容。您需要具体说明。谢谢您的回答。是的,我希望所有数据都放入一个大数组中。非常感谢。我还有最后一个问题,如果最后一个字符串中的项不是base64字符串,该怎么办?如果不是太真实,我希望为非base64项使用解决方案。是否可能?如果不是base-64,那么什么是吗?您最初的问题非常明确地指出“列表仅包含base64字符串”非常抱歉造成混淆。这些项目可能是普通字符串。应该使用什么格式将它们转换为字节?UTF-8?ASCII?Base-64具有特殊含义-这意味着字符是特定字节序列的编码表示。ASCII表示其他内容。UTF-8(通常称为unicode)又是别的意思了。你需要具体点。