C#.NET 对HashTable数组进行按值排序 最近作了一个项目,须要对一个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"