WINFORM程序,我要建立一个这样的集合,第一列KEY值(STRING 类型),第二列STRING 类型,第三列 OBJECT类型,第四列STRING类型,用什么方法来构造这样的集合比较好?当然需要系统开销小的,求教!!

解决方案 »

  1.   

    Dictionary<string, Tuple<string, object, string>>
      

  2.   

    用一个struct吧,struct my1
    {
       public string m_strFirstColumn;
       public string m_strSecondColumn;
       public object m_rThirdColumn;
       public string m_str4;
    }Dictionary<string,my1> a=new Dictionary<string,my1>();不过这样第一列会有冗余,也可以在my1中去掉m_strFirstColumn,
      

  3.   

    我滴个脑子啊
    对于winform,datatable其实可以,只是如果非要矫情啥开销,那么Dictionary<string,object> list<object>均可变通,变通,还是变通!object 是对象,对象可以有任意属性,包括ls的Dictionary<string, Tuple<string, object, string>>仍然还是Dictionary<string,object>的变体所以如果你想要有唯一key,使用Dictionary<string,object> 和datatable都可以
    如果不想唯一key,则使用datatable或者list <object>当然,使用Dictionary<string,object>、Dictionary<string, Tuple<string, object, string>> 相对来说绑定麻烦点,个人还是推荐list<T>或datatable,绑定容易操作ps:别看博客园那些没啥根据的水文,datatable其实并没有啥非常不能忍受的性能开销。
      

  4.   


    高手啊,我还不知道这个 Tuple 的存在!!!
      

  5.   


    datatable中可以存储 OBJECT类型吗?
    list<T> 如果T不是类或是结构类型,允许多列的存在吗?
      

  6.   

    datatable中可以存储 OBJECT类型吗? 没有问题。datatable是仿数据库实现,相当与一个内存数据库
    还是那句话如果是数据库你要放object会怎么办?要么二进制流,要么序列化xml,要么干脆拆成另一张关联表。
    ok。二进制流--》object二进制序列和反序列可以
    序列化xml--》这个也不必多说
    datatable关联表--》ado.net允许滴,自己看msdn的 datatset里多个datatable关联表-----------------------------------------------------------------------
    list<T> 如果T不是类或是结构类型,允许多列的存在吗如果T不是类或结构类型??这话说滴,net里还存在除了 引用类型 或 值类型以外的其他类型吗??
      

  7.   

    多于多列的,还是用datatable吧。
      

  8.   

    Dictionary<string, Tuple<string, object, string>>