【发布时间】:2011-08-27 03:49:08
【问题描述】:
我又遇到了一些 Linq 问题,我试图限制返回的信息,但仍然有层次结构形式的对象(基于它来自的 xml 以及 UI 中需要做什么)基本格式是这样的:
- 单人间
- [房间收藏]
- 1 号房间(ID = 1)
- 2 号房间(ID = 2)
- 双床房
- [房间收藏]
- 3 号房间(ID = 3)
- 4 号房间(ID = 4)
但我想要的是基于房间 ID(1、2、3、4 等)返回房间类型和特定房间层次结构,即(如果传入 id 4)。
- 双床房
- 4 号房间(ID = 4)
我创建了一些我认为可以正常工作的 LINQ,但我错了,因为它只是返回第一个房间类型(单人房间),并且只有一个房间,如果 if 匹配(我发送 id 3 和 4 它没有)并且正在寻找我完全理解这一点。
在下面的代码中,项目来自另一个方法,该方法基本上在上面的示例层次结构中输出:
var item = items.Select(i =>
new RoomType
{
name = i.name,
rooms = i.rooms
.Where(r => r.Name == id.ToString())
}).FirstOrDefault();
我需要做的是只返回在其房间集合中有一个房间的房间类型,该房间具有我传递给我的方法的正确 ID,我不确定上面的代码是否是一个开始,我试着搞砸与 Contains 等有关,但是当 Contains 期望一个对象时,我正在搜索一个 id,所以我不确定这里最好的方法是什么,我被卡住了。
任何帮助都会很棒。
罗伯
【问题讨论】:
标签: c# linq linq-to-sql