如何将数据表转换为List <long,list <keyvaluepair <string,string>&gt;&gt;在C#</long,list <keyvaluepair <string,string>

时间:2013-05-13 06:52:13

标签: c# .net linq datatable

我有一个包含三列的数据表:ID,Name和Value。

我想将此数据表转换为List<long,List<keyvaluepair<string,string>>>

唯一的诀窍是ID是来自另一张桌子的外国人。所以它可能有重复的价值。

我想用C#做。

提前致谢。


不,不是dictionaly .....实际我有两个课说,定义为....

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

我想将数据转换为List。

我不能使用字典,因为我想序列化这个List以通过网络发送它....

1 个答案:

答案 0 :(得分: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()