【问题标题】:linq lamba how can i query a list of child properties and return the parentlinq lambda我如何查询子属性列表并返回父级
【发布时间】:2021-07-27 06:04:22
【问题描述】:

考虑以下查询:

我有以下结构:

Member
{
  public Guid ID
  public string Name
  public virtual ICollection<MemberCategory> MemberCategories { get; set; }

}

MemberCategory
{
  public Guid TribunalMemberID
  public DateTime? AppointedFrom { get; set; }
  public DateTime? ExpiresOn { get; set; }
}

我希望能够列出与此查询匹配的所有成员的所有姓名,我认为我需要使用SelectMany,但我可以计算出代码。

我已经尝试过这种变体:

MembersMember 的集合)

public IDictionary<Guid, string> Options => Members.
            .SelectMany(tm => tm.MemberCategories)
            .Where(tmc => tmc.AppointedFrom <= DateTime.Today && tmc.ExpiresOn > DateTime.Today)
            .ToDictionary(tm => tm.ID, t => $"{tm.Name}");

但我不明白如何查询成员列表上的集合以返回成员列表以查看匹配的内容。

理想情况下,我想返回会员 ID 和姓名

我希望这是有道理的。 有人可以帮忙吗?

【问题讨论】:

    标签: c# linq lambda collections


    【解决方案1】:

    您可以使用.Any() 方法实现此目的

    var collection = members.Where(x => 
        x.MemberCategories.Any(tmc => tmc.AppointedFrom <= DateTime.Today && tmc.ExpiresOn > DateTime.Today))
            ToList();
    

    【讨论】:

    • 谢谢。完全想多了。简单明了的解释。
    猜你喜欢
    • 2013-03-25
    • 2018-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-06
    • 2022-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多