gpt4 book ai didi

c# - 将字典或列表转换为 byte[]

转载 作者:太空狗 更新时间:2023-10-29 18:03:20 24 4
gpt4 key购买 nike

好的,我在此处和 unity 论坛上看到过许多类似的问题,询问有关从一种格式转换为另一种格式的问题。我有一个(希望如此)简单的问题,但我找不到答案。我正在使用 Prime31 的游戏中心插件来处理回合制多人游戏。在 Prime31 的插件中,他们要求您提供一个 byte[] 以发送给其他玩家。 (状态数据)所以问题是,将 List 转换为字节数组然后将它们从字节数组转换回的好方法是什么?

作为引用,这是我需要的最复杂的类,以后我可能需要添加更多成员,但不需要任何不同的类型。此外,如果将 PokerPlayers 列表转换为 byte[] 更容易,则 int 列表(手牌)可以很容易地成为 4 个单独的 int。此列表中也没有设定长度,但始终为 4-8。

public class PokerPlayer{   
public string playerID;
public string alias;
public int wildCard;
public List<int> cardsInHand;
public int chips;
}

我觉得当我看到答案时,我会因为没有早点看到答案而自责。任何指向相关 Material 的指针/链接都会很好,我已经用类似(如此相似)但不完全相同的问题在谷歌上搜索了整整 3 个小时。

最佳答案

您可能想尝试序列化。

var binFormatter = new BinaryFormatter();
var mStream = new MemoryStream();
binFormatter.Serialize(mStream, myObjToSerialize);

//This gives you the byte array.
mStream.ToArray();

然后如果你想把字节数组转回一个对象:

var mStream = new MemoryStream();
var binFormatter = new BinaryFormatter();

// Where 'objectBytes' is your byte array.
mStream.Write (objectBytes, 0, objectBytes.Length);
mStream.Position = 0;

var myObject = binFormatter.Deserialize(mStream) as YourObjectType;

更新:

Microsoft 警告使用 BinaryFormatter因为它“不安全,无法保证安全”。

请阅读aka.ms/binaryformatter了解更多详情。

Preferred alternatives

.NET offers several in-box serializers that can handle untrusted data safely:

关于c# - 将字典或列表转换为 byte[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22972607/

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