Dictionary<TKey, TValue>字典,是包含键值对的,
我想问一下,有没有那种字典,就是Dictionary后面的括号里面的值,有N多,也就是说,括号内不止两个参数,有N个,这N个值都是一一对应的。意思就是说,一个键,可以对应N个不同类型的值:
Dictionary<TKey, TValue1,TValue12,TValue3,TValue4...............>有没有那种?

解决方案 »

  1.   

    你自己定义一个类,包含这些类型的field,也可以用泛型,在用这个类做Dictionary的TValue就行了class AClass<TValue1,TValue12,TValue3,TValue4>{
    public TValue1 value1;
    public TValue2 value2;
    public TValue3 value3;
    public TValue4 value4;}
    Dictionary<TKey, AClass<TValue1,TValue12,TValue3,TValue4>>大约就是这样子的
      

  2.   

    Dictionary<TKey,List<TValue>>
      

  3.   

    Dictionary<TKey,List<TValue>>
      

  4.   

    况且TVALUE可以是一个集合和类其实也还是KEY,VALUE一个的.
    只不过VALUE封装了一下
      

  5.   

    嗯,自定义类,或者用List<>
      

  6.   

    这不搞笑嘛,那玩意儿也能称之为Dictionary?
      

  7.   

    Dictionary<TKey,List<TValue>>不就完了~
      

  8.   

    key对应个list<object>就可以了
      

  9.   

    可是我的TValue1,TValue12,TValue3,TValue4...类型不一样啊,是不是又要创建多个list<>
    呢?
      

  10.   

    用List<object>的话就无视类型,有一个就行了,什么类型都可以放进去,但是取出来后都是Object类型的,需要你自己把它们转回去
      

  11.   

    都往一个容器里放就是设计问题了,
    那还不如直接用 Hashtable(object, object) 
      

  12.   

    List<object> list = new List<object>() {1, "me", 'a', 0.22M};泛型化真不是盖的!
      

  13.   

    Dictionary<key,List<value>>
      

  14.   

    最好是自己建模..
    多个的不能叫做字典了..字典里只有key和值.
      

  15.   

    你这种需求也太过了吧。不愿意自定义类。
    把TValue1,TValue12,TValue3,TValue4封装为一个实体。Dictionary<Tkey,封装的实体> ...
      

  16.   

    那请问阁下,如果不用字典,我要实现这种功能,还有其他更好的办法吗?
    比如:一个button型的值(Key),要对应一个label、一个checkbox、一个TextBox.....
    不用字典,还有更好的其他办法吗?
    谢谢!!
      

  17.   

    Ditionary<string, Control> 啊。直接用 Controls.FindControl 也可以啊。有必要自己保存吗?
      

  18.   

    一个Key值,对应的value值有lael、checkbox、textbox...而不是一个Control
      

  19.   

    要么用个类
    要么用List
    要么做个自定义控件
    要不你就弄三个字典每种控件存一个
      

  20.   

    请问各位,List的用法,我知道了,不过类的用法,我还不太明确,
    Dictionary<TKey, AClass<TValue1,TValue12,TValue3,TValue4>>AClass<TValue1,TValue12,TValue3,TValue4>哪里是一个值啊,是不是要用构造函数之类的?
      

  21.   

    Dictionary<TKey, AClass<TValue1,TValue12,TValue3,TValue4>> 这是用了泛型参数,你这个没必要用泛型class AClass
    {
       public Label label;
       public CheckBox checkbox;
       public TextBox textbox;
    }Dictionary<Button, AClass> dict = new Dictionary<Button, AClass>();
    dict.Add(button1, new AClass(){label=label1,checkbox=checkBox1,textbox=textBox1});
    这样就行了
      

  22.   

    有两个维度的key值,如Key1,Key2共同确定一组Value:Key1,Key2一一对应时:
    Dictionary<Key1,Dictionary<Key2,List<Value>>>Key1,Key2不是一一对应时:
    Dictionary<Key1,List<Dictionary<Key2,List<Value>>>>感觉很别扭
    有没有更好的办法?