首页 > 解决方案 > 将重复字段转换为列表

问题描述

。网

我的 protobuf 文件:

message Result{
    repeated ListOfStrings lists = 1;
}

message ListOfStrings {
    repeated string strings = 1;
}

我有一个具有此属性的课程:

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>>

如何处理?

标签: .netprotocol-buffersgrpcprotobuf-netprotobuf-csharp-port

解决方案


A与具有字符串List<List<string>>的事物列表不同。您可能需要:

foreach (var list in outerList) {
    var inner = new ListOfStrings();
    inner.Strings.AddRange(list);
    obj.Lists.Add(inner);
}

推荐阅读