【发布时间】:2011-01-14 19:27:51
【问题描述】:
包裹是一个列表
每个 Parcel 都有 Owners 属性,其中包含 List
parcels.Where(p => !p.Owners.IsNullOrEmpty()).SelectMany(p => p.Owners)
.OrderByDescending(x => x.RecordingDate ?? x.SaleDate ?? x.DateEntered)
.ForEach(owner =>
{
/* HERE I need to access to p which was a parent of this Owner */
}
不知道如何重写...
【问题讨论】:
-
...我假设
Owner碰巧没有Parent属性? -
等等,你的意思是你需要访问这个所有者的 child 的 p 吗?您已经在查询的第一部分访问了父母,那么如果在层次结构中还有更多父母,为什么会有不同呢?
-
Owner 没有 Parent 属性...我确实可以灵活地添加它,所以我可能会这样做。 (p 不是所有者的孩子,p 是原始父母...)
-
如果集合
parcels.Owners中类型的对象有父对象,但没有对它们的引用,则无法完成。你需要一个参考。 [至少它不能以任何有用的方式完成 - 你可以遍历 owner.parents 的整个集合,并将其子项与你从查询中得到的内容进行比较] -
我开始做类似... .SelectMany(p => p.Owners.Select( c => new { Owner = p.Owners, p.PropertyICareAbout }));看起来非常复杂,可能效率极低。我应该澄清一下,我现在只需要父母的一个财产......