2016-07-31 5 views
0

ich ein Business-Objekt-Modell haben, das wie so aussieht:C#: Wählen Sie ParentId und Kind Textwerte

Parent 
    string ParentType 
    List<Child> ChildCollectionList 

Child 
    int ChildId 
    string ChildText 

Mein Ziel ist eine Liste von Tupeln, dass diese Unterschrift

Tuple<ParentType,List<string>> resultingTuple 

wo die Liste haben besteht aus den ChildTexts in der ChildCollectionList-Auflistung.

Im Moment habe ich so etwas.

context.TruckSet.Where(n => n.IsDeleted.Equals(false)) 
    .Select(p => 
    new Tuple<string,List<string>>  
     (p.TruckType,p.TruckAttributes.Select(n => n.AttrText) 
        .ToList())).ToList(); 

Unnötig zu sagen, die Abfrage Linq nicht wie die kleine Erweiterung I der TruckAttributes Sammlung.

Ich bin mir nicht sicher, was ich tun soll.

+0

Welchen Fehler bekommen Sie? –

+1

Warum wählen Sie eine Zeichenfolge, wenn Sie einen 'ParentType' benötigen? – Noctis

Antwort

0

Ihr Beispiel von dem, was Sie bereits implementiert haben, ist ein wenig verwirrend, da es nicht mit dem oben beschriebenen Modell übereinstimmt. Aber wenn man bedenkt Sie wollen einfach nur, dass Tuple-List aus dem Modell zu erstellen, könnte folgendes helfen:

IList<Tuple<string, IList<string>>> result = 
    parents.Select(p => 
    Tuple.Create(p.ParentType, p.ChildCollectionList.Select(c => c.ChildText).ToList())); 
0

Sie benötigen die folgende Linq zu tun:

List<string> result = (from childItem in yourParentName.ChildCollectionList 
      select childItem.childText).ToList(); 

Wenn Sie nun die Liste der haben Texte können Sie folgendes schreiben:

Tuple<ParentType,List<string>> resultingTuple = 
      new Tuple<ParentType,List<string>>(yourParentName,result)