使用 HybridDictionary 类
来源:互联网 发布:使命召唤9剧情分支知乎 编辑:程序博客网 时间:2024/05/17 23:32
看到 CSLA.NET3.5 中很多次使用了HybridDictionary,性能极佳,就研究了一下。其定义如下:
HybridDictionary 类特别适合在不清楚集合大小的情况下使用。它利用了 ListDictionary 处理小集合时性能改善的优点,同时也可灵活地切换到处理较大集合时能力比 ListDictionary 更好的 Hashtable。其构造函数接受一个布尔值参数,该参数使用户可以指定在比较字符串时集合是否忽略大小写。
在使用 HybridDictionary 是也非常方便,可以用 DictionaryEntry, IDictionaryEnumerator,或直接用 hDic("key") 的形式进行各种操作。请参考MSDN 示例
HybridDictionary 另一个优点是可以进行 Serialization. 代码如下:
使用SoapFormatter 时要引用System.Runtime.Serialization.Formatters.Soap.dll
[Serializable]
public class HybridDictionary : IDictionary, ICollection, IEnumerable
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();
}
}
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
- 使用 HybridDictionary 类
- HybridDictionary 类
- Hashtable,ListDictionary,HybridDictionary 的使用
- Hashtable,ListDictionary,HybridDictionary 的使用
- Hashtable,ListDictionary,HybridDictionary比较
- 使用类
- 使用类
- handler使用--HandlerThread类,Bundle的使用
- 线程池使用及CountDownLatch类使用
- 什么时候使用抽象类, 什么时候使用接口 ?
- ThinkPHP使用 上传类UploadFile的使用
- fastjson使用(二) -- JSON类的使用
- NAudio使用之BlockAlignReductionStream类使用疑惑
- 修饰类的使用以及使用技巧
- 模板类的使用- 简单使用
- c++ libcurl使用(使用类)
- CRectTracker类的使用
- 类中使用application
- 去除前导零和字符串转换为整数
- (转)2.5 动态对话框(Dynamic Dialogs)
- ASP内置对象之Application对象&Server对象&Session对象
- Trac - WorkFlow - 工作流程 - 胡争辉 - CSDNBlog
- 设定资源管理器默认目录
- 使用 HybridDictionary 类
- 指针学习
- 必须掌握的八个DOS命令
- 关于linux环境变量出错问题
- Linux系统环境变量详谈
- (转)3.1从QMainWindow派生(Subclassing QMainWindow)
- java.io 流的几个对象以及方法属性的使用
- 五个方法练习你的注意力和观察力
- Bind和eval的区别