gpt4 book ai didi

c# - 如何查找具有与另一个集合中的任何值匹配的属性的所有对象?

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

我有一个包含对象的集合,其中一个对象属性是 PublishRequestStatus,它是一个枚举值。

我收到了另一个需要匹配的所有枚举值的列表,现在我知道如何搜索与值匹配的 1 个属性:

model = model.Where(x => x.PublishRequestStatus == PublishRequestStatus.Denied);

但是我无法匹配另一个集合中的所有可能值。例如,如果我有一个包含 PublishRequestStatus.ApprovedPublishRequestStatus.Denied 的集合,我将如何使用 LINQ 搜索具有这些枚举值之一的所有对象?

我发现唯一有效的方法是在一个循环中为第二个集合中的每个枚举值创建一个列表,最后将所有列表连接在一起。不过,我很确定 LINQ 有更好的方法来实现我想要实现的目标。

最佳答案

这可能不是您要查找的内容,但更像是一个建议。而不是收到 List<SomeEnum> , 你可以简单地使用按位 |在您的枚举值上,并使用 Enum.HasFlags 查找它们:

var flags = PublishRequestStatus.Approved | PublishRequestStatus.Denied;
var otherFlags = PublishRequestStatus.Approved |
PublishRequestStatus.Denied |
PublishRequestStatus.MaybeApproved;

Console.WriteLine(otherFlags.HasFlags(flags)); // Yields true.

假设这样的事情是可能的。

关于c# - 如何查找具有与另一个集合中的任何值匹配的属性的所有对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32693504/

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