[英]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.