C#.NET 对HashTable数组进行按值排序
2010-02-04 14:04
162 查看
最近做了一个项目,需要对一个2维数组的值进行排序然后再取出对应的Key值。开始是用HashTable做的,不过HashTable中的排序只是对Key进行排序,如果想对值进行排序得用其它办法。下面我就把这种方法说下:
一.我们先假设一个二维数组,用HashTable来储存值,当然你也可以去其它数组类来实现,这里就用HashTable。
HashTable ht=new HashTable();
ht.add("a",1);
ht.add("b",4);
ht.add("c",3);
ht.add("d",2);
我就不向里面添加内容了,我们假设这个数组中的Key为字符串,Value为Int类型(注:Value有重复值)。里面有若干数据。我们现在要实现的是将Value按从小到大排序,然后再取出排序过后的Key的值,请看代码:
代码
//先定义两个一维数组,分别用来存储Key和Value
string[] keyArray=new string[ht.Count];
int[] valueArray=new int[ht.Count];
//将HashTable中的Key和Value分别赋给上面两个数组
//注:有关CopyTo的用法请参考相关帮助文档
ht.Keys.CopyTo(keyArray,0);
ht.Values.CopyTo(valueArray,0);
//下面就是对Value进行排序,当然需要按排序结果将Keys的值也作对应的排列
//Sort默认是升序排序,如果想用降序排序请在Sort排序后使用Array.Reverse()进行反向排序
Array.Sort(valueArray,keyArray);
上面的代码已经将Value进行了升序排序,并且Key也作了相应的排列。
这样的话keyArray的值就成:
"a"
"d"
"c"
"b"
一.我们先假设一个二维数组,用HashTable来储存值,当然你也可以去其它数组类来实现,这里就用HashTable。
HashTable ht=new HashTable();
ht.add("a",1);
ht.add("b",4);
ht.add("c",3);
ht.add("d",2);
我就不向里面添加内容了,我们假设这个数组中的Key为字符串,Value为Int类型(注:Value有重复值)。里面有若干数据。我们现在要实现的是将Value按从小到大排序,然后再取出排序过后的Key的值,请看代码:
代码
//先定义两个一维数组,分别用来存储Key和Value
string[] keyArray=new string[ht.Count];
int[] valueArray=new int[ht.Count];
//将HashTable中的Key和Value分别赋给上面两个数组
//注:有关CopyTo的用法请参考相关帮助文档
ht.Keys.CopyTo(keyArray,0);
ht.Values.CopyTo(valueArray,0);
//下面就是对Value进行排序,当然需要按排序结果将Keys的值也作对应的排列
//Sort默认是升序排序,如果想用降序排序请在Sort排序后使用Array.Reverse()进行反向排序
Array.Sort(valueArray,keyArray);
上面的代码已经将Value进行了升序排序,并且Key也作了相应的排列。
这样的话keyArray的值就成:
"a"
"d"
"c"
"b"
相关文章推荐
- C#.NET 对HashTable数组进行按值排序
- c#例题:输入学生的学号,姓名,分数,然后根据分数进行排序再输出最终结果。重点学习用结构体定义数组的表达方式
- C#使用linq对数组进行筛选排序的方法
- .NET/C#中对自定义对象集合进行自定义排序的方法
- C# 数组按照升序排列并输出(分别用冒泡法,选择法,插入法进行排序)。
- C#字符串数组排序 C#排序算法大全 C#字符串比较方法 一个.NET通用JSON解析/构建类的实现(c#) C#处理Json文件 asp.net使用Jquery+iframe传值问题
- C#冒泡法对数组进行排序
- .NET/C#中对自定义对象集合进行自定义排序的方法
- .NET/C#中对自定义对象集合进行自定义排序的方法
- .NET/C#中对自定义对象集合进行自定义排序的方法
- C#基础:通过委托给任何对象数组进行排序
- 使用冒泡对数组进行排序
- NET下对二进制文件进行加密解密(C#)
- 利用函数指针对数组进行排序
- C# 整形数组排序
- 简单for循环进行数组排序
- 6.用插入排序对任意一组随机数据进行随机数组进行排序(用循环和递归两种方法)
- 数组_用Arrays.sort()进行排序
- C#数组和集合专题5(Hashtable排序和遍历)
- 要求对数组a进行排序,要求时间复杂度为O(N)