You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何简化单个对象匹配Func<T, bool>条件的测试逻辑?

如何直接用Func<T, bool>判断单个对象是否匹配条件?

你当前的实现确实可以运行,但完全没必要绕创建列表的弯路——直接调用Func<T, bool>委托本身就可以完成判断。

简化实现

Func<T, bool>本质就是一个接收T类型参数、返回布尔值的方法,你可以直接把测试对象传入委托执行,得到是否匹配的结果:

修改你的Match方法为:

public bool Match<T>(Func<T, bool> condition, T testObject)
{
    return condition(testObject);
}

甚至连Match方法都可以省略,直接在调用处执行委托:

Console.WriteLine(compiledQuery(testMatch));

原理说明

你通过Sprint.Filter.OData编译得到的compiledQuery就是一个Func<Test, bool>类型的委托,它本身的设计就是接收Test对象并返回该对象是否满足条件的布尔值。之前用列表+LINQ的方式属于多此一举,直接调用委托才是最直接高效的实现。

内容的提问来源于stack exchange,提问作者Helmut

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 08:43:15