简化问题,这不是作业。
在List<Room>
,每个房间都有这个房间里的人数。目前我正在打印room_id + person_id:
foreach(var room in List<Room>)
{
for(var i=0;i<room.numberOfPpl;i++)
{
Console.Write(string.Format("room_id={0} person_id={1}",room.id,i))
}
}
输出:room_id=1 person_id=1, room_id=1 person_id=2, room_id=1 person_id=3 ...
现在我的要求是首先在整个房间循环:
输出:room_id=1 person_id=1, room_id=2 person_id=1, room_id=3 person_id=1, room_id=1 person_id=2 ...
感谢。
答案 0 :(得分:4)
var maxNoPpl = rooms.Max(room=>room.numberOfPpl);
for(var i=0;i<maxNoPpl ;i++)
{
foreach(var room in rooms)
{
if (i < room.maxNoPpl)
{
Console.Write(string.Format("room_id={0} person_id={1}",room.id,i))
}
}
}
这不需要using System.Linq;
。