GQ08 III: mettons les choses à plat


Imaginons un tableau quelconque à deux dimensions. J’aimerais tout simplement lister l’ensemble des données sous forme d’un simple vecteur en éliminant la seconde dimension.

var values = new int[][] { new int[] {1, 2, 3}, new int[] {4, 5, 6}, new int[] {7, 8, 9} }; var q = ? foreach (var i in q) Console.WriteLine(i);


donnerait donc :

image

Comments (3)

  1. var q = values.SelectMany(v => v);

  2. Ou alors la version LINQ :

    var q = from vs in values

           from v in vs

           select v;

  3. Mitsu Furuta says:

    Bravo Matthieu,

    En effet, chaque élément de la première dimension étant à son tour un tableau, ‘SelectMany’ ou les sources imbriquées de Linq résolvent naturellement cette question.