gpt4 book ai didi

c# - LINQ - 查找给定列表中的所有项目都包含在 icollection 中的所有记录

转载 作者:太空宇宙 更新时间:2023-11-03 22:39:45 25 4
gpt4 key购买 nike

我有一个过滤器列表,我想用它来查询一个表,其中返回的项目包含所有值,而不仅仅是一个值。

该表名为 Organization,包含该组织所针对的 AgeGroups 列表。

public class Organisation
{
public int OrganisationID { get; set; }
public string OrgName { get; set; }
public ICollection<OrgAgeGroup> AgeGroupCollection { get; set; }
}

OrgAgeGroup 类在下面

public class OrgAgeGroup
{
public int OrgAgeGroupID { get; set; }
public int OrganisationID { get; set; }
public int AgeGroupID { get; set; }
}

最后,从复选框中选择的值存储在一个 int 列表中:

List<int> selectedAges 

我正在使用以下代码来选择包含任何选定年龄的所有组织:

IQueryable<Organisation> orglist = GetAllOrgs();

orglist = orglist.Where(o => o.AgeGroupCollection.Any(l => selectedAges.Contains(l.AgeGroupID)));

但我不知道如何获取包含所有选定年龄的所有组织。将 Any 更改为 All 似乎对搜索没有影响。有什么想法吗?

最佳答案

下面的查询应该给你你想要的。

orglist = orglist.Where(
o => selectedAges.All(
s => o.AgeGroupCollection
.Select(l => l.AgeGroupID)
.Contains(s)));

您想要组织 o,其中所有 selectedAges s 都包含在 o 的集合中AgeGroupCollectionAgeGroupId

关于c# - LINQ - 查找给定列表中的所有项目都包含在 icollection 中的所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52968463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com