我有一个包含三列的数据表: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以通过网络发送它....
答案 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()