Func and Cannot implicitly convert type
<p>So I have simple example of my code and I can't find idea how to rewrite it.
Code:</p>

<pre><code> class Program
  {
    static void Main(string[] args)
    {
      var cat = new Cat();
      cat
        .ToFeed(arg =&gt; LikeMilk(1), c =&gt; c.Inc())
        .ToFeed(arg =&gt; LikeMilk(2), c =&gt; c.Inc());
    }

    private static bool LikeMilk(int liters)
    {
      return liters &lt;1;
    }
  }

  public class Cat
  {
    private int Weith { get; set; }

    public void Inc()
    {
      Weith++;
    }

    public Cat ToFeed(Func&lt;int, bool&gt; predicate, Action&lt;Cat&gt; action)
    {
      if (predicate)  // Error: Cannot implicitly convert type 'System.Func&lt;int,bool&gt;' to 'bool' 
        action(this);
      return this;
    }
  }
}
</code></pre>

<p>Of course I can change signature <code>ToFeed</code> to <code>ToFeed(bool predicate, Action&lt;Cat&gt; action),</code> but I don't want to do it.
I understand that I have to add int parameter to call of predicate, but I have added it in <code>Main()</code></p>

<p>How can I solve this problem?</p>

<p>Thanks</p>
