以字节为单位获取C#列表的大小

时间:2012-12-31 06:47:02

标签: c# visual-studio-2010 list byte

我在visual studio 2010 c#

下有一个Windows应用程序

我创建了一个名为book的课程,其中包含3个字段(namewritingDateauthor

我创建另一个名为book的班级,该班级是bookList<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."

任何帮助?

1 个答案:

答案 0 :(得分:6)

没有很好的方法来获取列表的大小(以字节为单位)。主要问题是 - 你需要什么尺寸?你是否担心内存消耗?在某处传输列表时,您是否担心网络带宽?

如果内存消耗让您感到担忧,您可能会有数百万的图书条目。在这种情况下,我希望加载时间比其他任何东西都重要得多,所以你可以只加载部分列表并完全解决内存问题。

如果是网络带宽,则需要序列化列表(基本上将其转换为字节流),然后您可以判断流的长度。当你流式传输时,你会选择(可能是隐式的)字符串的字符编码,这可能是最重要的因素。