高效地将protobuf双维重复值转换为数组的方法。

我通过protobuf双维数组发送数据。

message IntArray{
    repeated int32 IntVal=1;
}

message DoubleDimentionIntArray{
    repeated IntArray IntArray=1;
}

现在,在客户端,我将数据转换为双维数组。

var data = xProtoClient.GetRecord(_protocolRequest).DoubleDimentionIntArray;
var intArrayList = new List<int[]>();
foreach (var arr in data.IntArray)
{
    intArrayList.Add(arr.IntVal.ToArray());
}

return intArrayList.ToArray();

这不是那么 “漂亮”。有没有其他更有效的方法?

解决方案:

因为这是矩形(注释),所以有效的方法是将数据转化为一个常规的组合大小的平面向量,然后本质上传输。

message IntArray{
    repeated int32 IntVal=1 [packed=true];
    int32 Width=2;
}

高度是由总大小除以宽度所隐含的。包装编码在这里也很重要,虽然现在可能是隐式自动的,这取决于你使用的具体工具。

给TA打赏
共{{data.count}}人
人已打赏
未分类

我如何暴露S3端点让客户加载文件?

2022-9-13 0:11:23

未分类

用户在if语句中的输入

2022-9-13 0:22:18

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索