从集合中获取包含特定对象的集合

时间:2015-01-23 18:14:11

标签: c# select collections lambda where

我承认标题有点令人困惑。

我有一个包含一个包含一些属性的集合的集合。

示例:

public class LocationalLink {
    public Model.Location Location { get; private set; }
    public ObservableCollection<Converter.Link.RoomLockerLink> RoomCollection { get; private set; }
}

public class RoomLockerLink {
    public Model.Room Room { get; private set; }
    public ObservableCollection<Model.Locker> LockerCollection { get; private set; }
}

在我的主要应用程序中,我收集了一些LocationalLink。

获取包含我们集合的特定对象的集合 现在我想获得包含特定房间的RoomCollections。

我认为这可能是这样的:

RoomCollection = LocationalLinkList.Where(o => o.RoomCollection.Where(i => i.Room == obj));

我知道这不起作用,因为Where子句的第二个参数必须是布尔表达式。愿任何人都能给我一个暗示吗?

1 个答案:

答案 0 :(得分:3)

将第二种方法改为任何

RoomCollection = LocationalLinkList.Where(o => o.RoomCollection.Any(i => i.Room == obj));