c#Dictionary to Datatable

时间:2013-10-14 15:31:15

标签: dictionary datatable

我有这本词典:

KEY                   VALUE
08/10/2013, 00:00:00, a, b​​, c, d, e, f, g, h, i
08/10/2013, 00:01:00, a, b​​, c, d, e, f, g, h, i
08/10/2013, 00:02:00, a, b​​, c, d, e, f, g, h, i
08/10/2013, 00:03:00, a, b​​, c, d, e, f, g, h, i
08/10/2013, 00:04:00, a, b​​, c, d, e, f, g, h, i
08/10/2013, 00:05:00, a, b​​, c, d, e, f, g, h, i
08/10/2013, 00:06:00, a, b​​, c, d, e, f, g, h, i

日期和时间是我的关键,而'a,b,c,d,e,f,g,h,i'是我的价值观。

我想将上面的字典放在DataTable

我该怎么做? 使用两个foreach循环?

private static void DictonaryTodataTable (DataTable dtResult, Dictionary <DateTime, CommaSeparatedList> CSVData)
{
    foreach (KeyValuePair item in <DateTime, CommaSeparatedList> CSVData)
    {
        DtResult.NewRow DataRow dr = ();
        
        [ CODE ]
        dtResult.Rows.Add (dr);
    }
}

1 个答案:

答案 0 :(得分:0)

DataRow可以保存列的索引值或散列值。您可以使用dr [0],dr [1] ...或dr [“columnA”],dr [“columnB”]

假设CommaSeparatedList可以迭代字符串,你可以用这个代替[CODE],尽管你可能需要一个强制转换器来处理从逗号分隔列表中提取字符串。

int count = 0;
dr[count++] = item.Key; // You could cast this to a string and/or format it here...
foreach(string column in item.Value){ dr[count++]=column; }