环顾四周,但没有看到这个问题。我基本上想知道这样做的“最好”(最快、最易读、最惯用等)的方式是什么。
上下文是我有一个 LINQ 查询来根据可能的枚举值列表进行过滤,并希望它尽可能地保持非嵌套。在python中,它会像
def GetItems(status_types:list)
return filter(lambda item: item.Status in status_types, ALL_ITEMS)
我认为在 C# 中我可能需要做一个
ALL_ITEMS
.Where(i => Enum.GetValues(typeof(StatusEnum)
.Intersect(status_types))
.Contains(i.Status));
这合理吗?这对我来说似乎有点迟钝,尽管这可能只是我个人的迟钝在起作用。
编辑我认为我在这里使用 Any() 错误。现在正在寻找合适的 linq thingo,抱歉。更改为包含,并添加了 typeof()。这就是我在我猜的文本框中输入的结果。