查找.net哈希表的大小

时间:2009-07-29 16:45:22

标签: .net size

在反序列化时查找.net哈希表的大小

如果我从流中读取并获取哈希表。他们是了解散列表有多大的好方法。即,如果我在二进制编辑器中查看文件,那么有多少字节代表这个哈希表? Deserialize mehthod如何知道哈希中的内容?

IFormatter formatter = new BinaryFormatter();
table = (Hashtable)formatter.Deserialize(FileStream);

编辑: 我想弄清楚的是,如果我在二进制编辑器中查看文件,那么文件流中的那些数据是我的哈希表。或者我可以做一些像sizeof()来查找大小(我怀疑我不能)。

1 个答案:

答案 0 :(得分:0)

也许这段代码可能会有所帮助?无耻地借鉴Victor Garcia Aprea。文章建议size变量将保存字节数。当然,这是序列化为一个字符串,而不是你正在寻找的二进制文件。

Hashtable ht = new Hashtable();
for (int i = 0; i < 100; i++)
{
    ht.Add(i, (i*10000).ToString());
}

LosFormatter los = new LosFormatter(); //in System.Web namespace; used for ViewState
StringWriter sw = new StringWriter();
los.Serialize(sw, ht);
string resultSt = sw.GetStringBuilder().ToString();

int size = sw.GetStringBuilder().ToString().Length;

Console.WriteLine(size);