En la sintaxis de consulta Puedo escribir¿Puedo acceder al "padre" omitido de SelectMany cuando uso sintaxis punteada en Linq?
var greendoorsWithRooms = from room in house.roooms
from door in room.doors
where door.Color = green
select new {d=door,r=room}
¿Hay alguna manera de que pudiera lograr el mismo con la sintaxis de puntos?
var greendoorsWithRooms = house.rooms.SelectMany(room=>room.Doors)
.Where(door=>door.Color==green)
.Select(door=>new{ <room is not in scope> }
enseño algunos no programadores utilizar LINQPad contra un modelo de objetos de propiedad de manera que no tenemos para crear GUI alrededor de cada caso extraño. Sería beneficioso si no tuvieran que aprender la sintaxis de la consulta. En este momento, he proporcionado fragmentos que resuelven esto utilizando foreach, pero la pregunta aún aparece de vez en cuando.
Eso es todo. Gracias. – Tormod
Creo que necesita cambiar los parámetros de puerta y habitación en segunda línea para que el primer parámetro sea la fuente y el segundo sea la colección. '(habitación, puerta) => nuevo {d = puerta, r = habitación})' –
Me gusta mucho 'house.rooms.SelectMany (r => r.Doors, Tuple.Create) .Where (t => t. Item2.Color == verde) '. Podrías poner la cláusula 'where' en algunos lugares diferentes, por supuesto. – Greg