将 RepeatedField 转换为列表
Convert RepeatedField to List
.网
我的 protobuf 文件:
message Result{
repeated ListOfStrings lists = 1;
}
message ListOfStrings {
repeated string strings = 1;
}
我有一个 class 这个 属性:
public List<List<string>> ListOfLists { get; set; }
Protobuf 编译器生成 RepeatedField
集合,当我尝试将此集合传递给 ListOfLists.AddRange()
时,出现此错误:
cannot convert from 'Google.ProtobufCollections.RepeatedField<gRPC.ListOfStrings>' to 'System.Collection.Generic.IEnumerable<System.Collections.Generic.List<string>>
如何处理?
你能试试CopyTo
方法吗,doc
示例伪代码:
Result result = ...
foreach(var list in result.list)
{
string[] arr = new string[list.Count];
list.CopyTo(arr,0);
ListOfLists.Add(arr.ToList());
}
A List<List<string>>
与 具有 字符串的事物列表不同。您可能需要:
foreach (var list in outerList) {
var inner = new ListOfStrings();
inner.Strings.AddRange(list);
obj.Lists.Add(inner);
}
.网
我的 protobuf 文件:
message Result{
repeated ListOfStrings lists = 1;
}
message ListOfStrings {
repeated string strings = 1;
}
我有一个 class 这个 属性:
public List<List<string>> ListOfLists { get; set; }
Protobuf 编译器生成 RepeatedField
集合,当我尝试将此集合传递给 ListOfLists.AddRange()
时,出现此错误:
cannot convert from 'Google.ProtobufCollections.RepeatedField<gRPC.ListOfStrings>' to 'System.Collection.Generic.IEnumerable<System.Collections.Generic.List<string>>
如何处理?
你能试试CopyTo
方法吗,doc
示例伪代码:
Result result = ...
foreach(var list in result.list)
{
string[] arr = new string[list.Count];
list.CopyTo(arr,0);
ListOfLists.Add(arr.ToList());
}
A List<List<string>>
与 具有 字符串的事物列表不同。您可能需要:
foreach (var list in outerList) {
var inner = new ListOfStrings();
inner.Strings.AddRange(list);
obj.Lists.Add(inner);
}