以下是将 Dictionary<string, List<Dictionary<int, int>>> 类型拆分成多个 message 的示例:

syntax = 'proto3';

message KeyValue {
  string key = 1;
  int32 value = 2;
}

message InnerMap {
  repeated KeyValue key_values = 1;
}

message OuterMap {
  string key = 1;
  repeated InnerMap inner_maps = 2;
}

在上面的示例中,我们定义了三个 message:

  • KeyValue:用于表示一个键值对。
  • InnerMap:用于表示一个内部字典,其中每个条目都是 KeyValue 的实例。
  • OuterMap:用于表示一个外部字典,其中每个条目都是一个字符串键和 InnerMap 的列表。

使用上面的 message 定义,我们可以将 Dictionary<string, List<Dictionary<int, int>>> 类型编码为 OuterMap 的实例。例如,以下是一个包含两个条目的字典的示例编码:

OuterMap {
  key: 'foo'
  inner_maps {
    key_values {
      key: '1'
      value: 10
    }
    key_values {
      key: '2'
      value: 20
    }
  }
  inner_maps {
    key_values {
      key: '3'
      value: 30
    }
    key_values {
      key: '4'
      value: 40
    }
  }
}

在上面的示例中,我们使用两个 InnerMap 实例来表示两个列表,每个列表都是一个包含两个 KeyValue 实例的内部字典。

Proto3 拆分 Dictionary<string, List<Dictionary<int, int>>> 类型为多个 Message

原文地址: https://www.cveoy.top/t/topic/nwFp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录