gpt4 book ai didi

c# - 如何使用 Binaryformatter 在 C# 中将 2D 二进制对象转换为 Dictionary

转载 作者:可可西里 更新时间:2023-11-01 11:28:37 24 4
gpt4 key购买 nike

我想将 byte[][] 类型的对象转换为字典。

它总是给出错误“在解析完成之前遇到流结束。”

请帮帮我。

 public static object ByteToObjectArray(byte[][] ms)
{
BinaryFormatter formatter = new BinaryFormatter();
MemoryStream mStream = new MemoryStream();
mStream.Write(ms, 0, (int)ms.Length);
mStream.Position = 0;
return formatter.Deserialize(mStream) as object;

}

最佳答案

HGETALL 应该返回数据为

key1
data1
key2
data2
...

如此交错...现在...假设 key 是 UTF8:

public static Dictionary<string, object> ByteToObjectArray(byte[][] bytes)
{
var dict = new Dictionary<string, object>();
var formatter = new BinaryFormatter();

for (int i = 0; i < bytes.Length; i += 2)
{
string key = Encoding.UTF8.GetString(bytes[i]);
// Alternatively
//string key = Encoding.Unicode.GetString(bytes[i]);

using (var stream = new MemoryStream(bytes[i + 1]))
{
object obj = formatter.Deserialize(stream);

dict.Add(key, obj);
}
}

return dict;
}

关于c# - 如何使用 Binaryformatter 在 C# 中将 2D 二进制对象转换为 Dictionary<string, object>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42834795/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com