繁体   English   中英

使用Linq进行操作:编译对象列表中所有列表的列表

[英]Using Linq to do: Compile a list of all lists within a list of objects

我确信Title就像泥泞一样清晰,因此让我举一个例子,看看是否有人可以指出我正确的方向:

public class topObj
{
    public List<midObj> Mids { get; set; }
    public List<botObj> Bots { get { // do some LINQ magic here } }
}
public class midObj
{
    public List<botObj> Bots { get; set; }
}
public class botObj
{
}

因此,我试图从顶部对象获取列表中所有底部对象的列表,这些底部对象位于List <>中的任何中间对象中。

现在我有这样的事情:

public List<botObj> Bots
    {
        get
        {
            List<botObj> lst = new List<botObj>();
            foreach (midObj mo in Mids)
            {
                lst.AddRange(mo.Bots);
            }

            return lst;
        }
    }

当然,它可以工作,但是我必须假设LINQ有一种方法可以减少行数。

 get { return Mids.SelectMany(mid => mid.Bots).ToList(); }

我还至少考虑只返回IEnumerable<botObj>而不是List ,以便您只花精力评估所有内容,并在需要时将其放入列表中。 如果您知道使用列表的方式,请随时忽略此评论。

您将必须执行以下操作:

get{ Mids.SelectMany(x => x.Bots).ToList(); }

希望能帮助到你!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM