2013-05-13 146 views
0

我有一個數據表,它包含三列,ID,名稱和值。如何將數據錶轉換爲List <long,List <keyvaluepair <string,string >>> in C#

我想將此數據錶轉換爲List<long,List<keyvaluepair<string,string>>>

唯一的訣竅是ID是來自另一個表的外國公司。所以它可以有重複的價值。

我想在C#中做到這一點。

在此先感謝。


不,不是..... dictionaly我actualy有兩個班說,作爲definded ....

public class RunParameters 
    { 
     public long RunId { get; set; } 
     public List<WorkflowParameter<string>> WorkflowParameters { get; set; } 

     public RunParameters() 
     { 
      WorkflowParameters = new List<WorkflowParameter<string>>(); 
     } 
    } 

public struct WorkflowParameter<T> 
    { 
     public string ParameterName 
     { get; set; } 
     public T ParameterValue 
     { get; set; } 
    } 

我想將確定時代轉換成列表。

我不能用字典,因爲我想要序列的名單在網絡上發送....

+0

你的意思'詞典<長,名單>>'? – davmos 2013-05-13 06:55:34

+0

請看更新.... – Abhash786 2013-05-13 07:01:05

+0

一個列表只能是一種類型 - 所以,如果你想要一個列表,它將不得不是'List >>>'甚至只有在定義它時纔是醜陋的。那真的是你想要的嗎? – 2013-05-13 07:03:20

回答

2

在查詢項目分組依據ID和項目組從每個項目KeyValuePair

(from r in table.AsEnumerable() 
group r by r.Field<long>("ID") into g 
select g.Select(i => new KeyValuePair<string, string>(
         i.Field<string>("Name"), i.Field<string>("Value")) 
     .ToList()).ToList() 

或完全用方法的語法:

table.AsEnumerable() 
     .GroupBy(r => r.Field<long>("ID")) 
     .Select(g => g.Select(r => new KeyValuePair<string, string>(
          r.Field<string>("Name"), r.Field<string>("Value")) 
        .ToList()) 
     .ToList() 
相關問題