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

获取以字节为单位的C#列表的大小,c#,visual-studio-2010,list,byte,C#,Visual Studio 2010,List,Byte,我在VisualStudio2010C下有一个windows应用程序# 我创建了一个名为book的类,其中包含3个字段(name,writingDate,author) 我创建了另一个名为book的类,它是book的列表(list) 当我检索书籍类数据时,我需要知道它的字节大小 我该怎么做 注意:我尝试了Marshal.SizeOf(books),但出现了此错误 "Type 'System.Collections.Generic.List`1[books]' cannot be marshale

我在VisualStudio2010C下有一个windows应用程序#

我创建了一个名为
book
的类,其中包含3个字段(
name
writingDate
author

我创建了另一个名为
book
的类,它是
book
的列表(
list

当我检索
书籍
类数据时,我需要知道它的字节大小

我该怎么做

注意:我尝试了
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."

有什么帮助吗?

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

如果内存消耗让你担心的话,你可能有数百万本书。在这种情况下,我希望加载时间比其他任何事情都重要得多,因此您可以部分加载列表,并完全修复内存问题


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

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

如果内存消耗让你担心的话,你可能有数百万本书。在这种情况下,我希望加载时间比其他任何事情都重要得多,因此您可以部分加载列表,并完全修复内存问题


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

现在在此上下文中定义“字节大小”。。。你希望它测量什么?列表使用的字节大小?或基本上:你想用这个数字做什么?我从数据库中填写图书,在从数据库中填写图书后,我需要知道图书列表的大小,以监控其大小。你为什么需要知道?书的数量不够吗?@danny嗯,书单的大小基本上是4*个或8*个,取决于平台。。。(x86对x64)。。。但我不认为这是有帮助的,当然这不是你要找的号码。但是,除非您正在测量序列化,否则我不确定这个问题是否有意义。。。你希望它测量什么?列表使用的字节大小?或基本上:你想用这个数字做什么?我从数据库中填写图书,在从数据库中填写图书后,我需要知道图书列表的大小,以监控其大小。你为什么需要知道?书的数量不够吗?@danny嗯,书单的大小基本上是4*个或8*个,取决于平台。。。(x86对x64)。。。但我不认为这是有帮助的,当然这不是你要找的号码。但是,除非您正在测量序列化,否则我不确定这个问题是否有意义。内存消耗是我的问题。我需要知道它的大小来监控这个。books并不是我试图以bytesWell表示的唯一列表,那么,如果您确实存在内存问题(在64位进程中很少发生),您应该查看.NET内存分析器。看这里,内存消耗是我的问题。我需要知道它的大小来监控这个。books并不是我试图以bytesWell表示的唯一列表,那么,如果您确实存在内存问题(在64位进程中很少发生),您应该查看.NET内存分析器。看这里。