可以序列化为T并反序列化为List <t>吗?

时间:2018-12-10 16:57:22

标签: protobuf-net

仅当我将二进制文件添加为集合(在这种情况下为List )时,我才能反序列化二进制文件中的所有项。

在某种意义上讲,但是我只将一个项目附加到列表中,所以我要创建一个包含一个项目的List,然后进行序列化,然后才能将其反序列化为List 。这样做对性能有影响吗?还是我想得太多?

1 个答案:

答案 0 :(得分:1)

如果您只是 ever 将一个项目添加到列表中,那么是拥有列表的边际开销,但有趣的是这只会影响运行时间-包含一项的列表与直接(非列表)子属性的实际序列化是相同的。所以; 如果您完全确定,则只有(最多)一项,以下内容可以互换:

[ProtoMember(42)]
public List<Foo> Foos {get;} = new List<Foo>(); // has at most one item

[ProtoMember(42)]
public Foo Foo {get;set;}