2015-03-31 120 views
0

假設我們有酒店有房間,每個房間都有房間號碼,我如何使用Linq而不是foreach顯示從context.Hotels開始的所有房間號碼?如何使用Linq獲取實體集合屬性的項目?

插圖:

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); 
    } 
} 

很顯然,我可以直接從房間實體顯示數字,但是這不是我實際的代碼只是爲了說明我想做的事情。

回答

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(); 
+0

謝謝正是我需要的!我一直在看到這種方法突然出現在IntelliSense中,並且忽略了它 – 2015-03-31 02:06:35

相關問題