Mon objectif était de sérialiser le résultat en JSON avec JavascriptSerializer avec un tableau non-associatif (pas de paire clé-valeur).
public static object[] ToTuple<T, U, V>(this
IEnumerable<T> queryable, Func<T, U> t1)
{
List<object[]> tab = new List<object[]>();
foreach (var e in queryable)
tab.Add(new object[] { t1.Invoke(e) });
return tab.ToArray();
}
//...
public static object[] ToTuple<T, U, V, W, X, Y, Z>(this
IEnumerable<T> queryable, Func<T, U> t1, Func<T, V>
t2, Func<T, W> t3, Func<T, X> t4, Func<T, Y> t5,
Func<T, Z> t6)
{
List<object[]> tab = new List<object[]>();
foreach (var e in queryable)
tab.Add(new object[] { t1.Invoke(e), t2.Invoke(e), t3.Invoke(e), t4.Invoke(e), t5.Invoke(e), t6.Invoke(e) });
return tab.ToArray();
}
Ces méthodes sont à ajouter dans des classes statiques pour être utilisables.
Note : on pourrait retourner un Tuple<U,V...>[] à la place de object[], mais la sérialisation serait associative avec les clés Item1, Item2...