C#:选择ParentId和Child Text Values

时间:2016-07-31 23:25:59

标签: c# linq

我有一个业务对象模型,如下所示:

Parent
   string ParentType
   List<Child> ChildCollectionList

Child
   int ChildId
   string ChildText

我的目标是具有此签名的元组列表

Tuple<ParentType,List<string>>  resultingTuple

其中List由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集合那么小的扩展。

我不确定我应该做什么。

2 个答案:

答案 0 :(得分:0)

您已实施的示例有点令人困惑,因为它与您上面描述的模型不匹配。但考虑到你只是想从你的模型中创建那个Tuple-List,以下内容可能有所帮助:

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

答案 1 :(得分: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)