仅当我将二进制文件添加为集合(在这种情况下为List
在某种意义上讲,但是我只将一个项目附加到列表中,所以我要创建一个包含一个项目的List,然后进行序列化,然后才能将其反序列化为List
答案 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;}