Partager via


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

  • Anonymous
    August 07, 2008
    var q = values.SelectMany(v => v);

  • Anonymous
    August 07, 2008
    Ou alors la version LINQ : var q = from vs in values        from v in vs        select v;

  • Anonymous
    August 07, 2008
    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.