c# - 将字节数组数据读入对象的正确方法是什么
问题描述
所以我有这个看起来像这样的字节数组
[40, 0, 4, 0, 0, 0, 7, 69, 108, 121, 115, 105, 97, 110, 0, 0, 0, 0, 215, 90, 55, 255, 125, 90, 105, 90, 75, 175, 165, 140, 160, 180, 215, 255, 230, 175, 160, 105, 60, 0]
我正在尝试将其解析为一个名为Player
以填充其所有属性(例如名称等)的对象。
这是我的方法,这是一种可怕的方法!
var player = new Player {
Client = state.workSocket,
UUID = state.player.UUID,
PlayerID = data[3],
SkinVarient = data[4],
Hair = data[5],
Name = Encoding.UTF8.GetString(data, 7, data[6]),
HairDye = data[7 + data[6] + 1],
HideVisuals = data[7 + data[6] + 2],
HideVisuals2 = data[7 + data[6] + 3],
HideMisc = data[7 + data[6] + 4],
HairColor = data.Skip(data[7 + data[6] + 4]).Take(3).ToArray(),
SkinColor = data.Skip(data[7 + data[6] + 4] + 3).Take(3).ToArray(),
EyeColor = data.Skip(data[7 + data[6] + 4] + 3 + 3).Take(3).ToArray(),
ShirtColor = data.Skip(data[7 + data[6] + 4] + 3 + 3 + 3).Take(3).ToArray(),
UnderShirtColor = data.Skip(data[7 + data[6] + 4] + 3 + 3 + 3 + 3).Take(3).ToArray(),
PantsColor = data.Skip(data[7 + data[6] + 4] + 3 + 3 + 3 + 3 + 3).Take(3).ToArray(),
ShoeColor = data.Skip(data[7 + data[6] + 4] + 3 + 3 + 3 + 3 + 3 + 3).Take(3).ToArray(),
Difficulty = data.Last()
};
这感觉不是一种非常健壮和好的映射方式,有没有合适的方法来做这件事?
解决方案
推荐阅读
- python - 如何从 Keras 嵌入层获取词向量
- swift - WebView 中的空白页
- excel - 我在“Set ToolsMenu = Application.CommandBars("Worksheet Menu Bar").Controls("Tools")" 上收到类型不匹配错误
- python - 在python中分散数据并绘制决策边界
- kubernetes - Kubernetes - 应用程序一致的备份
- python - 如何在 Python 中检查二维数组中元素的类型
- http - go 程序在执行数小时后系统地在 semacquire 问题上崩溃
- c++ - lamda 仅在声明为 'auto' 时编译,而不是在声明为 'bool' 时编译
- docker - Fail2ban 匹配正则表达式,但在监控来自 docker 容器的流量时禁止的 ip 似乎是错误的?
- html - 如何在css中创建圆点?