using System; using System.Linq; using System.Collections.Generic; public class Test { public static void Main() { Dictionary> mydata = new Dictionary>(); List ldate=new List(){"1/1/2000","1,1/2001"}; List lage=new List(){"4","5"}; mydata["date"] = ldate; mydata["age"] = lage; List> mytarget = new List>(); Dictionary t1=new Dictionary(); Dictionary t2=new Dictionary(); t1["date"]="1/1/2000"; t1["age"]="4"; t2["date"]="1/1/2001"; t2["age"]="5"; mytarget.Add(t1); mytarget.Add(t2); var orig = mydata; var res = Enumerable.Range(0, orig.Values.First().Count) .Select( i => orig.Aggregate( new Dictionary() , (d, p) => { d[p.Key] = p.Value[i]; return d; } ) ).ToList(); foreach (var d in res) { foreach (var p in d) { Console.WriteLine("{0} -> {1}", p.Key, p.Value); } } } }