首页 > 解决方案 > LINQ 查询 - 在列表中查找包含具有特定属性的对象的对象

问题描述

我有这个结构有两个属性:

public struct RoomExit
{
    public RoomExitType Type;
    public bool isOccupied;
}

这个房间对象可以有多个RoomExit结构:

public class Room : MonoBehaviour
{
    public List<RoomExit> Exits;
}

在一个单独的类中,我有一个 Room 对象列表:

public class LevelGenerator : MonoBehaviour
{
    public List<GameObject> Rooms;
}

我想设计一个 LINQ 查询,用于搜索列表中具有特定类型的List<GameObject> RoomsRoom 对象(比如说 RoomExitType.A)。我认为这称为子查询,但我不确定。RoomExitExits

这是我到目前为止所拥有的:

List<GameObject> SelectedRooms = Rooms.Where(x => x.GetComponent<Room>().Exits.Contains(???))

我不明白如何设计查询的下一部分,该部分试图查看 Exits 列表中的一个结构是否具有等于 RoomExitType.A 的 RoomExitType。这是我正在尝试做的视觉示意图:

在此处输入图像描述

标签: c#linqunity3d

解决方案


var query = Rooms.Where(room => room.Exits.Any(e => e.Type == RoomExitType.C))

推荐阅读