2017-02-01 3 views
-1

ich habe folgende Eigenschaft:Flatten eine List <Tuple <string, List <Object> >>

List<Tuple<string,List<Object>>> GroupedItems 

Ich brauche eine Liste aller Objekte.

Derzeit bin ich ein sehr pragmatischer Ansatz mit einer Schleife:

  List<Object> flatList = new List<Object>(); 
      foreach (var y in container.GroupedItems) 
      { 
      foreach(var z in y.Item2) 
      { 
      flatList.Add(z); 
      } 
      } 

Ich bin sicher, kann dieser Vorgang durch die Verwendung von LINQ in eine bequemere Art und Weise erfolgen, leider habe ich nicht viel Erfahrung mit diesem.

Vielen Dank im Voraus :)

+0

Was sind 'container' und' Item2'? Siehe [Erstellen eines minimalen, vollständigen und überprüfbaren Beispiels] (http://stackoverflow.com/help/mcve). –

+0

Sie müssen nicht wissen, was 'Container' ist, es ist eine gute Abstraktion. "Item2" - ist offensichtlich ein Objekt, weil es zu einer solchen Liste hinzugefügt wurde. – eocron

+1

@ChrisPickford 'Item2' ist der Name der zweiten Eigenschaft in einem' Tuple ' –

Antwort

3

Möglicherweise möchten Sie SelectMany verwenden: auf eine andere Aufzählung

List<Object> flatList = GroupedItems.SelectMany(item => item.Item2).ToList(); 

SelectMany Projekte alle Elemente in einer Aufzählung. In Ihrem Fall projiziert es jedes Tupel auf die Liste der Objekte in diesem Tupel (Item2).

+0

Perfekt, das ist genau das, was ich gesucht habe, thx !! – Bgl86

Verwandte Themen