2013-10-02 183 views
0

我有一個DataTable 4列 -DataTable to Dictionary <字符串,字典<字符串,字典<字符串,字符串>>>

ParentDictionary,Id,Key和Value。

目前,我有下面的代碼 -

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>>>

+3

這是一個對象的問題 – Jonesopolis

+0

你確定你必須有嵌套字典嗎? – Arran

回答

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<string, IList<string>>

而且我不喜歡必須對這類代碼進行維護...

+0

它像一個魅力!!!!!非常感謝!!! :) –

相關問題