c# - 将谓词<T>转换为Func <T,bool>

标签 c# linq

我有一个包含成员Predicate的类,我想在Linq表达式中使用该类:

using System.Linq;

class MyClass
{

    public bool DoAllHaveSomeProperty()
    {
        return m_instrumentList.All(m_filterExpression);
    }

    private IEnumerable<Instrument> m_instrumentList;

    private Predicate<Instrument> m_filterExpression;
}

当我读到“Predicate<T>完全等同于Func<T, bool>”(see here)时,我希望它能起作用,因为All接受了参数:Func<Instrument, bool> predicate

但是,我得到了错误:
Argument 2: cannot convert from 'System.Predicate<MyNamespace.Instrument>' to 'System.Type'

有没有办法将谓词转换为该函数将吞咽的参数?

最佳答案

public bool DoAllHaveSomeProperty()
{
    return m_instrumentList.All(i => m_filterExpression(i));
}

关于c# - 将谓词<T>转换为Func <T,bool>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25531837/

相关文章:

c# - System.Management 资源监控统计信息,如 I/O、CPU、内存使用...等'

c# - "async"/"await"方法中的参数验证应该被包装

c# - 创建一个与 iPhone 进行 JSON 通信的 ASP.NET Web 服务

c# - 调试器监 window 口中的 VS2015 LINQ

c# - XMLSerializer 到 XElement

c# - 有没有办法使用 LINQ 将重复项目的集合与其子集合合并?

c# - 使 DataGridView 与 DataView 保持同步

c# - 从字符串中获取完全限定的类型名称.Net C#

c# - 如何使用 C# LINQ 正确(深度)映射复杂对象?

c# - 如何从linq中的数据表中获取2列