我在网页上有3个过滤条件
我目前正从表中获取所有行并将它们放入数据集中。我现在想要能够根据用户可能输入的上述过滤器的任意组合来过滤该数据集。或者用户可能选择不输入过滤器。
有人可以帮我用lambda表达式设置吗?
答案 0 :(得分:7)
这是我在自己的代码中使用的模式,用于应用过滤器:
var data = GetData();
var sourceFilter = SourceDropDown.Value;
if (!string.IsNullOrEmpty(sourceFilter))
data = data.Where(d => d.Source == sourceFilter);
var categoryFilter = CategoryDropDown.Value;
if (!string.IsNullOrEmpty(categoryFilter))
data = data.Where(d => d.Category == categoryFilter);
DateTime startDateFilter, endDateFilter;
if (DateTime.TryParse(TxtStartDate.Text, out startDateFilter) &&
DateTime.TryParse(TxtEndDate.Text, out endDateFilter))
data = data.Where(d => d.DT >= startDateFilter && d.DT <= endDateFilter);
return data.ToList();