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

密钥值对数据结构的最佳实现?

如何解决《密钥值对数据结构的最佳实现?》经验,为你挑选了4个好方法。

所以我最近一直在讨论C#,所有的Generic Collections让我有些困惑.假设我想表示一个数据结构,其中树的头是一个键值对,然后在它下面有一个可选的键值对列表(但没有比这些更多的级别).这适合吗?

public class TokenTree
{
    public TokenTree()
    {
        /* I must admit to not fully understanding this,
         * I got it from msdn. As far as I can tell, IDictionary is an
         * interface, and Dictionary is the default implementation of
         * that interface, right?
         */
        SubPairs = new Dictionary();
    }

    public string Key;
    public string Value;
    public IDictionary SubPairs;
}

传递数据只是一个简单的分流.



1> Adam Haile..:

有一个名为KeyValuePair的实际数据类型,就像这样使用

KeyValuePair myKeyValuePair = new KeyValuePair("defaultkey", "defaultvalue");


KeyValuePair NAME_HERE = new KeyValuePair ("defaultkey","defaultvalue");

2> Jon Limjap..:

你可以做的一件事就是直接使用Dictionary对象,然后用你自己的修改来扩展它:

public class TokenTree : Dictionary
{
    public IDictionary SubPairs;
}

这使您无需为密钥强制执行IDictionary规则(例如,密钥唯一性等).

并且你明白了构造函数的概念:)



3> Shaun Austin..:

我认为你可能会追求的(作为你的问题的字面实现)是:

public class TokenTree
{
    public TokenTree()
    {
        tree = new Dictionary>();
    }

    IDictionary> tree; 
}

你确实在你的问题中说了一个关键值的"列表",所以你可能想要用以下内容交换内部IDictionary:

IList>



4> Coincoin..:

有一个KeyValuePair内置类型.事实上,这是IDictionary在您迭代时可以访问的内容.

此外,这种结构几乎不是一棵树,找到一个更有代表性的名字可能是一个很好的锻炼.

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