假设我们的酒店有房间,每个房间都有房间号码,我如何使用Linq而不是foreach显示从context.Hotels
开始的所有房间号码?
插图:
var Rooms = context.Hotels.Select(e => e.Rooms);
foreach (var room in Rooms)
{
var list = room.Select(r => r.Number);
foreach(number in list)
{
Console.WriteLine(number);
}
}
显然我可以直接显示房间实体中的数字,但这不是我的实际代码,只是为了说明我想做什么。
答案 0 :(得分:1)
如何使用SelectMany
简单地选择房间号码,如:
var roomNumbers = context.Hotels.SelectMany(h => h.Rooms.Select(r => r.Number));
或者如果他们需要不同的数字:
var roomNumbers = context.Hotels.SelectMany(h => h.Rooms.Select(r => r.Number)).Distinct();