当前位置:  开发笔记 > 编程语言 > 正文

是否可以对HashTable进行排序?

如何解决《是否可以对HashTable进行排序?》经验,为你挑选了3个好方法。

我有一个返回的属性HashTable.我想在不重构我的财产的情况下对其进行排序.请注意:我不想退回其他类型.码:

    /// 
    /// All content containers.
    /// 
    public Hashtable Containers
    {
        get
        {
            Hashtable tbl = new Hashtable();
            foreach (Control ctrl in Form.Controls)
            {
                if (ctrl is PlaceHolder)
                {
                    tbl.Add(ctrl.ID, ctrl);
                }
                // Also check for user controls with content placeholders.
                else if (ctrl is UserControl)
                {
                    foreach (Control ctrl2 in ctrl.Controls)
                    {
                        if (ctrl2 is PlaceHolder)
                        {
                            tbl.Add(ctrl2.ID, ctrl2);
                        }
                    }
                }
            }

            return tbl;
        }
    }

John Feminel.. 18

Hashtables通过将键映射到值来工作.此映射中隐含的概念是密钥未按任何特定顺序排序或存储.

但是,你可以看看SortedDictionary.



1> John Feminel..:

Hashtables通过将键映射到值来工作.此映射中隐含的概念是密钥未按任何特定顺序排序或存储.

但是,你可以看看SortedDictionary.



2> joel.neely..:

另一种选择是像你现在一样构造哈希表,然后简单地从键构造一个有序集.您可以遍历该排序的密钥集,根据需要从哈希表中获取相应的值.



3> Joel Coehoor..:

lubos是对的:你不能对HashTable进行排序.如果可以的话,它就不会是HashTable.您可以枚举HashTable,然后对枚举进行排序.但那将是非常缓慢的.更好地使用一个SortedDictionary代替.

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有