public static Tuple <IEnumerable <T1>, IEnumerable <T2> > Unzip <T1, T2>(IEnumerable <Tuple <T1, T2> > ienum) { List <T1> first = new List <T1>(); List <T2> second = new List <T2>(); foreach (Tuple <T1, T2> t in ienum) { first.Add(t.Value1); second.Add(t.Value2); } return(Tuples.Tuple(first as IEnumerable <T1>, second as IEnumerable <T2>)); }
public static Tuple <IEnumerable <T1>, IEnumerable <T2>, IEnumerable <T3>, IEnumerable <T4> > Unzip <T1, T2, T3, T4>(IEnumerable <Tuple <T1, T2, T3, T4> > ienum) { List <T1> first = new List <T1>(); List <T2> second = new List <T2>(); List <T3> third = new List <T3>(); List <T4> fourth = new List <T4>(); foreach (Tuple <T1, T2, T3, T4> t in ienum) { first.Add(t.Value1); second.Add(t.Value2); third.Add(t.Value3); fourth.Add(t.Value4); } return(Tuples.Tuple(first as IEnumerable <T1>, second as IEnumerable <T2>, third as IEnumerable <T3>, fourth as IEnumerable <T4>)); }
public static Tuple <T1, T2> AsTuple <T1, T2>(KeyValuePair <T1, T2> kvp) { return(Tuples.Tuple(kvp.Key, kvp.Value)); }