在使用Linq中的点语法时,我能否访问被跳过的“父级”SelectMany?

12 浏览
0 Comments

在使用Linq中的点语法时,我能否访问被跳过的“父级”SelectMany?

在查询语法中,我可以写成:

var greendoorsWithRooms = from room in house.rooms
from door in room.doors
where door.Color = green
select new {d=door,r=room}

有没有一种方法可以用点语法实现同样的效果?

var greendoorsWithRooms = house.rooms.SelectMany(room=>room.Doors)
     .Where(door=>door.Color==green)
     .Select(door=>new{  }

我正在教一些非程序员使用LINQPad来处理专有的对象模型,以免不得不为每个奇怪的情况创建GUI。如果他们不必学习查询语法,那将是有益的。目前,我已经提供了使用foreach解决此问题的代码片段,但是这个问题偶尔还是会出现。

0