c# - 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> Rooms
Room 对象(比如说 RoomExitType.A)。我认为这称为子查询,但我不确定。RoomExit
Exits
这是我到目前为止所拥有的:
List<GameObject> SelectedRooms = Rooms.Where(x => x.GetComponent<Room>().Exits.Contains(???))
我不明白如何设计查询的下一部分,该部分试图查看 Exits 列表中的一个结构是否具有等于 RoomExitType.A 的 RoomExitType。这是我正在尝试做的视觉示意图:
解决方案
var query = Rooms.Where(room => room.Exits.Any(e => e.Type == RoomExitType.C))
推荐阅读
- java - JAVA - jar - 没有主要清单属性
- php - NotificationURL 格式无效 - 本地主机上的服务器 Inframe 集成
- php - 在 PHP 中将数组转换为逗号分隔的数组。
- python - 在MySQL上执行插入,没有错误但也没有插入
- node.js - axios 进入 catch 函数而不是 then,如果状态是 302
- javascript - 嵌入式 SVG 路径 onclick 获取 id
- katex - 带有 greeksymbol 的 \mathbf 无法使用 katex
- java - 如何使用 Jackson 和 Spring Boot 提供自定义反序列化器
- c# - 从 C# 中的 DataSet 加入视图
- c# - 系统时钟(基于 System.Timers.Timer)冻结(但 WPF UI 的其余部分响应完美)