周りを見回しましたが、これが尋ねられたことはありませんでした。私は本質的に、これを行うための「最良の」(最速、最も読みやすく、最も慣用的な方法など)の方法が何であるか疑問に思っています。
コンテキストは、可能な列挙値のリストに基づいてフィルター処理する 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 を探しています。申し訳ありません。Contains に変更し、typeof() を追加しました。それは、私が推測するテキストボックスに入力するだけで得られるものです。