将Func列表作为单个Func返回

时间:2018-07-27 12:46:37

标签: c#

我有一个func列表

class SomeClass
{
  List<Func<int, bool>> _funcList;

}

我想在该类中编写一个函数,以将单个列表中的所有项作为单个函数返回

Func<int, bool> GetAllTrueConditions()
{
  //for each item in _funcList do AND and return
}

这样我可以在下面做

Collection.Filter = obj.GetAllTrueConditions();

1 个答案:

答案 0 :(得分:2)

最简单的方法是返回一个lambda函数。要从列表中调用所有功能,请使用

_funcList.All(func => func(5));

我们不能构造一个lambda来执行上面的语句:

var callAll = integerVal => _funcList.All(func => func(integerVal));

完整示例

class SomeClass
{
    List<Func<int, bool>> _funcList;

    Func<int, bool> GetAllTrueConditions()
    {
        //for each item in _funcList do AND and return
        return integerVal => _funcList.All(func => func(integerVal));
    }
}