C#.NET 对HashTable数组进行按值排序

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"

转载于:https://my.oschina.net/u/582827/blog/1535904

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值