我有一个包含Article
对象的列表。该对象的参数是
类别、描述、状态、类别
用户可以使用他想要的组合过滤列表。只有描述,或类别 + 类,依此类推。
所以如果用户选择一个标准,我会得到一个 int >= 0,否则我会得到-1。
例如,如果他选择使用Status
and过滤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。
谢谢