我有A类,一对多到B类,它与C类一对多。如何在A类中创建C类列表?
public class A
{
public virtual IList<B> Bs { get; set; }
// need List<C> Cs passed from Bs
}
public class B
{
public virtual A A { get; set; }
public virtual IList<C> Cs { get; set; }
}
public class C
{
public virtual B B { get; set; }
}
答案 0 :(得分:2)
您可以使用来自LINQ的SelectMany
,这会使列表列表变得扁平化,并且#34;到一个列表。
public class A
{
public virtual IList<B> Bs { get; set; }
//if you need an IList<C>
public IList<C> Cs
{
get { return Bs.SelectMany(b => b.Cs).ToList(); }
}
//if you need an IEnumerable<C>
public IEnumerable<C> Cs
{
get { return Bs.SelectMany(b => b.Cs); }
}
}