从字典值中获取所有项目,这些项目也是项目列表

时间:2012-03-10 09:15:20

标签: c# .net list lambda expression

让我说我有以下词典:

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

任何想法?

1 个答案:

答案 0 :(得分:4)

听起来像你想要的那样:

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

或者,通过字典中每对的Value属性将其视为展平:

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

得爱LINQ:)