我想我可能暂时出现了心理问题,如果这是一个愚蠢的问题,请原谅,但我想知道是否可以编写过滤器以便将它们应用于集合:
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;
关于c# - 在没有集合的情况下编写过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27711690/