オブジェクトのリストがありArticle
ます。このオブジェクトのパラメータは
カテゴリ、説明、ステータス、クラス
ユーザーは、必要な組み合わせでリストをフィルタリングできます。説明のみ、またはカテゴリ + クラスなど。
したがって、ユーザーが基準を選択すると、int >= 0 を取得し、それ以外の場合は -1 を取得します。
たとえば、彼が と でフィルタリングすることを選択した場合Status
、Category
私は取得します
FilterCategory = x、FilterDescription = -1、FilterStatus = y、FilterClass = -1
リストをフィルタリングする私の方法は次のとおりです。
if (FilterCategory != -1)
list = list.Where(a => a.Category == FilterCategory);
if (FilterDescription != -1)
list = list.Where(a => a.Description == FilterDescription);
if (FilterStatus != -1)
list = list.Where(a => a.Status == FilterStatus);
if (FilterClass != -1)
list = list.Where(a => a.Class == FilterClass);
このように、リストを 4 回反復する必要があります。多くのアイテムでは効率的ではありません。リストを一度参照し、一意の場所で 4 つの条件を確認します。しかし、特定の条件 != -1 でそれを行う方法がわかりません。
ありがとうございました