这解释起来很复杂,但做起来可能很简单。
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/