【发布时间】:2012-07-06 19:13:52
【问题描述】:
我正在使用两个 LINQ 查询(嵌套)
这是我希望我的查询实现的目标:
在我的内心查询中
- 使用两个条件检索
UserLocation对象的集合
在我的外部查询中
- 检索过滤后的
User对象集合,其中User.UID与内部查询集合中每个UserLocation对象的属性UserLocation.UID匹配。
我几乎就代码而言,我只是错过了最后一步——我不知道如何让外部查询枚举UserLocation 集合并匹配UID。
在我的代码中,我有两个查询,最上面的一个是使用内部查询和我需要的条件(以及匹配UID)获取User 对象的FullName 属性的工作示例。
第二个查询是我遇到的问题。我错过了什么?
ownerLiteral.Text =
Users.First(u => u.UID.Equals(
UserLocations.First(s => s.IsOwner == true && s.LID.Equals(building.LID)).UID)).FullName;
var propertyteam =
Users.Where(c => c.UID.Equals(
UserLocations.Where(x => x.IsPropertyTeam == true && x.LID.Equals(building.LID))));
编辑:修复问题
我忘记了UserLocations 是Users 的成员——我缩短了查询并使用.Any 选择了符合我条件的UserLocations 成员,然后只返回User。
在第一个查询中,我为User 对象返回FullName。
在第二个查询中,我现在返回符合条件的 User 对象集合。
对于那些感兴趣的人,我将第二个查询绑定到 DataList,然后在用户控件中评估他们的 FullName。
ownerLiteral.Text =
Users.First(
u => u.UserLocations.Any(
ul => ul.IsOwner == true && ul.LID.Equals(building.LID))).FullName;
var propertyteam =
Users.Where(
u => u.UserLocations.Any(
ul => ul.IsPropertyTeam && ul.LID.Equals(building.LID)));
【问题讨论】:
标签: c# asp.net linq collections nested