c# Linq 从字典中的列表中过滤掉记录

标签 c# asp.net linq list dictionary

这解释起来很复杂,但做起来可能很简单。

1) 我有一本字典。 (变量_输出)

2) 在 NotificationWrapper 中我有一个列表。

3) 在此列表中,我有一些需要匹配的要求。

4) 如果满足这些要求,我想从字典中返回 NotificationWrapper。 (_output.value)

我试过这样的:

var itemsToSend = 
  _output.Where(
      z => z.Value.Details.Where(
          x => DateTime.Now >= x.SendTime && 
          x.Status == SendStatus.NotSent && 
          x.TypeOfNotification == UserPreferences.NotificationSettings.NotificationType.Email
      )
  ).Select().ToList();

所以我想要与条目本身内的条件相匹配的 _output 条目。因此,对于我循环的每个条目,我检查该条目列表中的值以查看它是否已发送。如果还没有发送,那么我想返回那个 _output.value 项目。 itemsToSend 应包含尚未发送的 _output 条目。 (不是_output.value.xxx 里面的一些值)

最佳答案

在谷歌浏览器中编译 :)

var itemsToSend = _output
    .Values
    .Where(n => n.Details.Any(
        x => DateTime.Now >= x.SendTime && 
        x.Status == SendStatus.NotSent && 
        x.TypeOfNotification == UserPreferences.NotificationSettings.NotificationType.Email))
    .ToList();

即我认为您正在寻找 Any()

关于c# Linq 从字典中的列表中过滤掉记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4602966/

相关文章:

c# - System.Runtime.InteropServices.GuidAttribute 是否用于除 COM 互操作之外的任何内容

c# - 使用带有 json 补丁的 ASP.NET Core 更新嵌套元素

asp.net - ReturnUrl 并保留滚动位置?

c# - 如何检查一个列表是否包含另一个列表 C#

c# - 有没有一种使用 LINQ 合并两个有序序列的简单方法?

c# - LINQ 动态查询库设置

c# - 将元数据注入(inject).mp4文件

C# 并行 - 重复迭代

c# - 如何在查询中连接 MS-SQL 和 MySQL 表?

asp.net - 当启用 EnabledEventValidation 时,Firefox 中出现无效 ViewState 错误