我在visual studio 2010 c#
下有一个Windows应用程序我创建了一个名为book
的课程,其中包含3个字段(name
,writingDate
,author
)
我创建另一个名为book
的班级,该班级是book
(List<book>
)
当我检索books
类数据时,我需要知道字节大小
我该怎么做?
注意:我尝试Marshal.SizeOf(books)
,但发生了此错误
"Type 'System.Collections.Generic.List`1[books]' cannot be marshaled as
an unmanaged structure; no meaningful size or offset can be computed."
任何帮助?
答案 0 :(得分:6)
没有很好的方法来获取列表的大小(以字节为单位)。主要问题是 - 你需要什么尺寸?你是否担心内存消耗?在某处传输列表时,您是否担心网络带宽?
如果内存消耗让您感到担忧,您可能会有数百万的图书条目。在这种情况下,我希望加载时间比其他任何东西都重要得多,所以你可以只加载部分列表并完全解决内存问题。
如果是网络带宽,则需要序列化列表(基本上将其转换为字节流),然后您可以判断流的长度。当你流式传输时,你会选择(可能是隐式的)字符串的字符编码,这可能是最重要的因素。