2012-03-10 42 views
2

的名單讓我們說,我有以下詞典值的所有項目:充分利用這也是項目

public Dictionary<Room, List<Booking>> rooms = new Dictionary<Room, List<Booking>>(); 

我需要得到所有可用的預訂,無論房間的,使用lambda表達式。

比如我需要做同樣如下面的代碼

List<Booking> allBookings = new List<Booking>(); 
     foreach (List<Booking> listOfBooking in rooms.Values) 
      foreach (Booking bookingItem in listOfBooking) 
       allBookings.Add(bookingItem); 

什麼想法?

回答

4

聽起來像是你想:

var allBookings = rooms.Values.SelectMany(x => x).ToList(); 

另外,認爲它是由每對字典的Value財產壓扁:

var allBookings = rooms.SelectMany(x => x.Value).ToList(); 

愛是愛LINQ :)

+0

這一點。 ..... 太棒了 !!!!!是的,這就是我的意思,所以這個問題應該是這樣的:如何壓扁字典中的所有值? – 2012-03-10 09:19:48

+2

@NarSabouny:那真的是如何將字典中的所有值扁平化,其中每個值本身就是一個集合。但是你的問題很好,很清楚,特別是當你給出了你想要的命令代碼時。 – 2012-03-10 09:25:19

+0

非常感謝,不幸的是我現在無法接受你的問題!我得等一會兒! – 2012-03-10 09:30:39