dictionary.Keys是字典主键集合(key是参数代号);
 
DataTable dt = new DataTable();
dt.Columns.Add("时间");
foreach (string str in dictionary.Keys)
{
   dt.Columns.Add(str);
}dt.Rows.Add(....);如上述代码,现在已经动态创建了列,且列是动态创建的,那么现在如何动态地创建行呢?行是字典中的Value(Value对应的是一个数组,如:
Value = (   (key1,time1,value1),(key1,time2,value2),......),
Value = (   (key2,time1,value21),(key2,time2,value22),......),
所要生成的表的格式是
时间    key1        key2       ...time1   value1     value21     ...
请各位指点迷津,焦急等待中...

解决方案 »

  1.   

    用代码写出Value的具体定义吧,否则没法回答
      

  2.   

    同意,需要更过信息//你的dictionary结构是?创建之后的datatable几行啊?
      

  3.   

    差不多是个这:Dictionary<string,object [][]>  dictionary=new Dictionary<string,object [][]>();
                DataTable dt=new DataTable();
                dt.Columns.Add("时间");
                foreach (string str in dictionary.Keys)
                {
                    dt.Columns.Add(str);
                }            dt.PrimaryKey= new DataColumn[]{dt.Columns["时间"]};
                foreach (string str in dictionary.Keys)
                {
                    foreach (object[] objs in dictionary[str])
                    {
                        DataRow dr = null;
                        dr = dt.Rows.Find(objs[0]);
                        if (dr == null)
                        {
                            dr = dt.NewRow();
                            dr["时间"] = objs [1];
                            dt.Rows.Add(dr);
                        }
                        dr[objs[0].ToString()] = objs[2];
                    }
                }
      

  4.   

    FYI            Int32 len = dictionary.ElementAt(0).Value.Length;            for (Int32 i = 0; i < len; i++)
                {
                    DataRow dr = dt.NewRow();
                    for (Int32 j = 0; j < dictionary.Keys.Count; j++)
                    {
                        dr[j] = dictionary.ElementAt(j).Value[i];
                    }
                    dt.Rows.Add(dr);            }
      

  5.   

    for (int i = 0; i < 5; i++)
    {
        DataRow row = dt.NewRow();
        for (int j = 0; j < 3; j++)
        {
            row[j] = j.ToString() + "," + (i + 1).ToString();
        }
        dt.Rows.Add(row);
    }
    foreach (KeyValuePair<string, int> item in dictionary)
                {
                  //item.Key, item.Value              
                }