c# - 在没有集合的情况下编写过滤器?

标签 c#

我想我可能暂时出现了心理问题,如果这是一个愚蠢的问题,请原谅,但我想知道是否可以编写过滤器以便将它们应用于集合:

    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/

相关文章:

c# - 双色路径对象

c# - 在同一张表的主键上创建外键约束的不良做法?

c# - HtmlAgilityPack XPath 忽略大小写

c# - 我可以在面向 .Net 3.5 的项目中使用所有 C# 4.0 功能吗?

c# - 用于模拟 Facebook SDK 的 JsonObject

c# - 在c#中查询excel表

c# - DebugDiag 在 .NET 4 下不显示 .NET 堆栈信息

c# - 如何检查数据类型

c# - 无法从泛型类型转换为接口(interface)

c# - 在 Windows 窗体应用程序中使用 Console.WriteLine