2016-07-31 40 views
0

我有一個業務對象模型,看起來像這樣:C#:選擇的ParentId和兒童文本值

Parent 
    string ParentType 
    List<Child> ChildCollectionList 

Child 
    int ChildId 
    string ChildText 

我的目標是有這個簽名

Tuple<ParentType,List<string>> resultingTuple 

在列表元組的列表由ChildCollectionList集合中的ChildTexts組成。

現在,我有這樣的事情。

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(); 

不用說,Linq查詢不喜歡我對TruckAttributes集合的小擴展。

我不知道我該怎麼做。

+0

你會得到什麼錯誤? –

+1

你爲什麼要選擇一個字符串,如果你需要一個'ParentType'? – Noctis

回答

0

您已經實施的例子有點令人困惑,因爲它與上面描述的模型不匹配。但考慮到你只是想創建你的模型,元組列表,下面可以幫助:

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

你需要做以下的LINQ:

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

現在,當你有一個清單你可以編寫以下內容:

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