【发布时间】:2019-08-28 20:44:19
【问题描述】:
我有 2 个收藏。 1 是 groupIds 的数组,另一个是 IEnumerable。
我的用户类包含另一个 IList 类型的列表,表示用户所属的组:
public class User
{
public IList<Group> Groups { get; protected set; }
}
Group 类看起来像这样:
public class Group{
public long Group_Id { get; protected set; }
}
我需要做的是返回 groupIds 数组中所有用户的集合。即,我想要类似的东西:
usersRepository.Where(user => user.Groups.Where(group => groupIds.Contains(group.id))
如果我的 groupIds 数组的组 id 为 5 和 6,则返回 useresRepository 中属于组 5 和 6 的所有用户。
到目前为止,我能想到的最好的方法如下:
UserRepo.Users.AsEnumerable().Where(user =>
user.GroupUsers.Where(wg => GroupIds.Contains(wg.Group_Id)));
但这是抱怨,因为 .Contains 返回一个布尔值而不是我的列表,但我不知道如何解决这个问题。
我的代码不起作用,因为 .Contains() 导致表达式返回布尔值而不是集合。但是,我不确定如何检查嵌套在我的 User 对象中的 GroupIds 列表是否包含指定的组 ID。
【问题讨论】: