• 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"

  • 相关阅读:
    石头剪刀布技巧+个人经验总结
    能让你聪明的工作DEAL四法则,来自《每周工作四小时》书籍
    开发软件名称简写定义表
    罗永浩简历(自荐新东方的简历)
    感人微电影 《健康树》金赫及作品简介
    陈寅恪
    中国朝代顺序表
    Loading...加载图收集
    KeyBoardUtils.java——android键盘工具类
    LogUtils.java
  • 原文地址:https://www.cnblogs.com/lovesangel/p/1663592.html
Copyright © 2020-2023  润新知