如何在第一次选择后清除我的列表



我有几个复选框,我将用户决策存储在列表中,然后我需要根据用户决策过滤列表。问题是,一旦我收集了用户决策,如果(UserDecision.Count>1其中之一。

public static List<int> UserDecision { get; set; } = new List<int>();
public bool FilterAllItems
{
set
{               
_filterAllItems = value;
NotifyPropertyChanged();
if (FilterAllItems == true)
{
UserDecision.Add(_parentCategoryId = -1);
}
}
get => _filterAllItems;
}
public bool FilterBeginnerItems
{
set
{
_filterBeginnerItems = value;
NotifyPropertyChanged();
if (_filterBeginnerItems)
{
FilterAllItems = false;
UserDecision.Add(_parentCategoryId = 1);
}
}
get => _filterBeginnerItems;
}
public bool FilterIntermediateItems
{
set
{
_filterIntermediateItems = value;
NotifyPropertyChanged();
if (_filterIntermediateItems)
{
FilterAllItems = false;
UserDecision.Add(_parentCategoryId = 2);
}
}
get => _filterIntermediateItems;
}

private static List<Article> FindAllArticlesForPurchases(List<Article> allArticles)
{
foreach(var userDecision in UserDecision)
{
if (userDecision != -1)
{
if(UserDecision.Count > 1)
{
foreach (var categoryGroup in _allUserCategoryGroups)
{
var allGroupCategories = _allCategories.Where(m => m.CategoryGroupId == categoryGroup.Id && UserDecision.Contains(m.CategoryGroupId)).ToList();
foreach (var category in allGroupCategories)
{
var categoryArticles = _allArticlesForPurchase.Where(m => m.CategoryId == category.Id).ToList();
allArticles.AddRange(categoryArticles);
}
}
}    
else
{
allArticles = _allArticlesForPurchase;
}
}
return allArticles;
}

使用Clear()方法

UserDecision.Clear();

最新更新