在不存在集合的情况下撰写筛选器
本文关键字:筛选 情况下 不存在 集合 | 更新日期: 2023-09-27 18:35:39
我想我可能在这里遇到了暂时的精神故障,所以请原谅我,如果这是一个愚蠢的问题,但我想知道是否可以组合过滤器,以便它们可以应用于集合:
static void Main(string[] args)
{
int[] a = { 1, 2, 3, 4 };
Func<int, bool> filter = GetFilter();
IEnumerable<int> result = a.Where(filter);
}
private static Func<int, bool> GetFilter()
{
Func<int, bool> filter = c => c % 2 == 0;
// What if I wanted to further refine my filter here?
// For instance, add a ceiling of 10
return filter;
}
我相信
您必须添加对原始过滤器的引用以避免递归调用。
var previousFilter = filter;
filter = c => previousFilter(c) && c <= 10;
return f => c <= 10 && filter(c);