gpt4 book ai didi

c# - 使用 linq 对子列表中具有条件的元素进行计数

转载 作者:行者123 更新时间:2023-12-03 08:54:00 26 4
gpt4 key购买 nike

我正在尝试从本身具有列表的对象列表中获取一些值,但我正在努力使用 Linq 查询来实现此目的。我想向用户显示他们尚未响应的事件数量。

我有一个事件列表,其中每个事件都有一个EventUsers列表,这些EventUsers有一个 bool 值HasResponded和一个UserId。我想检索某个用户尚未响应的事件数量。

为了简单起见,我省略了 Linq 查询中不需要的对象的属性。

事件类别:

    public class Event
{
public List<EventUser> EventUsers { get; set; }
}

EventUser 类:

    public class EventUser
{
public int EventId { get; set; }
public Event Event { get; set; }
public long UserId { get; set; }
public User User { get; set; }

public bool HasResponded { get; set; }
}

我的 linq 查询应该看起来像这样,但我无法让它工作:

_eventManager.QueryEvents().Where(x => x.StartTime > DateTime.Today && x.EventUsers.Select(z => z.UserId == userId && z.HasResponded)).Count()

我将如何创建这个 Linq 查询?非常感谢任何帮助!

最佳答案

_eventManager.QueryEvents().Where(x => x.StartTime > DateTime.Today)
.SelectMany(x => x.EventUsers)
.Count(z => z.UserId == userId && !z.HasResponded)

关于c# - 使用 linq 对子列表中具有条件的元素进行计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56913802/

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