weiyue.net
weiyue.net
登录
注册
全站
当前博客
空间
博客
好友
相册
留言
用户操作
[即时聊天]
[发私信]
[加为好友]
weiyue_net
weiyue_net的公告
最近评论
weiloveyue:
Nice wrok! Thanks
文章分类
Architecture
(RSS)
ASP.NET
(RSS)
SQL Server 2005
(RSS)
VS2008
(RSS)
weiyue.net
(RSS)
收藏
WCF
相册
Bolg Spider
DotNet Kicks
(RSS)
存档
2008年06月(1)
2008年05月(5)
2008年04月(5)
订阅我的博客
使用 HybridDictionary 类
收藏
新一篇: [必备工具] SQL2005 Management Studio 之 SSMS Tools Pack
|
旧一篇: 必备 VS2008 辅助工具之 PowerCommands
看到
CSLA.NET3.5
中很多次使用了HybridDictionary,性能极佳,就研究了一下。其定义如下:
[Serializable]
public
class
HybridDictionary : IDictionary, ICollection, IEnumerable
HybridDictionary 类特别适合在不清楚集合大小的情况下使用。它利用了
ListDictionary
处理小集合时性能改善的优点,同时也可灵活地切换到处理较大集合时能力比
ListDictionary
更好的
Hashtable
。其构造函数接受一个布尔值参数,该参数使用户可以指定在比较字符串时集合是否忽略大小写。
在使用 HybridDictionary 是也非常方便,可以用 DictionaryEntry, IDictionaryEnumerator,或直接用 hDic("key") 的形式进行各种操作。请参考
MSDN 示例
HybridDictionary 另一个优点是可以进行
Serialization
. 代码如下:
using
System.Collections;
using
System.Collections.Specialized;
using
System.IO;
using
System.Runtime.Serialization.Formatters.Binary;
using
System.Runtime.Serialization.Formatters.Soap;
public
class
TestHybridDictionary
...
{
private
void
SerializationTest()
...
{
HybridDictionary hd
=
new
HybridDictionary();
hd.Add(
"
keyA
"
,
"
Value01
"
);
hd.Add(
"
keyB
"
,
"
Value02
"
);
FileStream fs
=
new
FileStream(
@"
c:\bs.data
"
, FileMode.Create);
BinaryFormatter bf
=
new
BinaryFormatter();
bf.Serialize(fs, hd);
fs.Close();
FileStream fs02
=
new
FileStream(
@"
c:\ss.data
"
, FileMode.Create);
SoapFormatter sf
=
new
SoapFormatter();
sf.Serialize(fs02, hd);
fs02.Close();
}
}
使用SoapFormatter 时要引用
System.Runtime.Serialization.Formatters.Soap.dll
发表于 @
2008年05月05日 21:09:00
|
评论(
loading...
)
|
编辑
新一篇: [必备工具] SQL2005 Management Studio 之 SSMS Tools Pack
|
旧一篇: 必备 VS2008 辅助工具之 PowerCommands
评论:没有评论。
发表评论
姓 名:
主 页:
校验码:
看不清,换一张
登录