1C#.NET 对HashTable数组进行按值排序 2 最近做了一个项目,需要对一个2维数组的值进行排序然后再取出对应的Key值。开始是用HashTable做的,不过HashTable中的排序只是对Key进行排序,如果想对值进行排序得用其它办法。下面我就把这种方法说下: 3 4 一.我们先假设一个二维数组,用HashTable来储存值,当然你也可以去其它数组类来实现,这里就用HashTable。 5 6 7 8HashTable ht=new HashTable(); 9ht.add("a",1); 10ht.add("b",4); 11ht.add("c",3); 12ht.add("d",2); 13 14 15 16 17我就不向里面添加内容了,我们假设这个数组中的Key为字符串,Value为Int类型(注:Value有重复值)。里面有若干数据。我们现在要实现的是将Value按从小到大排序,然后再取出排序过后的Key的值,请看代码: 18 19 20复制代码 21//先定义两个一维数组,分别用来存储Key和Value 22string[] keyArray=new string[ht.Count]; 23int[] valueArray=new int[ht.Count]; 24 25//将HashTable中的Key和Value分别赋给上面两个数组 26//注:有关CopyTo的用法请参考相关帮助文档 27ht.Keys.CopyTo(keyArray,0); 28ht.Values.CopyTo(valueArray,0); 29 30//下面就是对Value进行排序,当然需要按排序结果将Keys的值也作对应的排列 31//Sort默认是升序排序,如果想用降序排序请在Sort排序后使用Array.Reverse()进行反向排序 32Array.Sort(valueArray,keyArray); 33 34 35复制代码 36 37 38上面的代码已经将Value进行了升序排序,并且Key也作了相应的排列。 39 40 这样的话keyArray的值就成: 41 42"a" 43 44"d" 45 46"c" 47 48"b"
C#.NET 对HashTable数组进行按值排序
Stella981
2021-10-11
1173 0 0
点赞
收藏
评论区
加载中...