0

我有一个有 4 列的 DataTable -

父字典、ID、键和值。

目前我有以下代码 -

var dict = t.Tables[0].AsEnumerable().
            GroupBy(row => row.Field<string>("ParentId")).ToDictionary(
                    g => g.Key,
                    g => g.ToDictionary(row => row.Field<string>("Key"), row => row.Field<string>("Value"))
        );

有没有人有解决方案将此表转换为

Dictionary<string, Dictionary<string, Dictionary<string,string>>>.

4

1 回答 1

0

你可以做这样的事情

var heckOfAnObject = dataTable
            .AsEnumerable()
            .GroupBy(m => m.Field<string>("ParentId"))
            .ToDictionary(
                a => a.Key,
                a => a.GroupBy(c => c.Field<string>("Id"))
                      .ToDictionary(
                          d => d.Key,
                          d => d.GroupBy(f => f.Field<string>("Key"))
                                .ToDictionary(
                                    g => g.Key,
                                    //you'll have to pick one of the value in the grouped values
                                    g => g.First().Field<string>("Value"))));

但是对象真的很复杂,我不明白为什么最后一个嵌套的 Dictionary 不是Dictionary<string, IList<string>>

而且我不想对这种代码进行维护......

于 2013-10-02T14:01:12.630 回答