支持自定义排序 ( 原创 )
Posted on 2008-01-29 09:59 Charles Chen 阅读(6151) 评论 (32) 编辑 收藏
很多文章都有写到 Hashtable 有内部的排序机制,如果要自定义排序的话就要自己写算法来实现的:
听起来很抽象,我一向喜欢简单实用的东西,我下面就来总结总结怎样来实现自定义排序 Hashtable.
先看看普通的 Hashtable 的基本实现:
publicstaticvoidMain()
{
Hashtableht=newHashtable();
ht.Add("key1","value1");
ht.Add("key2","value2");
ht.Add("key3","value3");
ht.Add("key4","value4");
ht.Add("key5","value5");
foreach(stringstrinht.Keys)
{
Console.WriteLine(str+":"+ht[str]);
}
}
运行的结果:
产生这个结果的原因大家都知道,Hashtable 内部的排序机制使然.
下面我来说说在平时的遇到的几种排序类型以及实现:
一、我按什么顺序加进去就按什么顺序输出:
publicclassNoSortHashTable:Hashtable
{
privateArrayListlist=newArrayList();
publicoverridevoidAdd(objectkey,objectvalue)
{
base.Add(key,value);
list.Add(key);
}
publicoverridevoidClear()
{
base.Clear();
list.Clear();
}