// extremely lame example, but I like the functional aspect of it.
// also, combining the bool/func pairs into objects (strategies) might
// be a nice way to cordon off the coupling. Oh, and the naming could
// much improved, which would help greatly with readability.

var use_public_forums =
  new Dictionary<bool, Func<IEnumerable<Forum>, IEnumerable<Forum>>>
    {
      {true, forums => forums.Where(forum => !forum.IsPrivate)},
      {false, forums => forums}
    };
    
    
// usage:
var other_forums = use_public_forums[includePublic](allForums);
var filtered_forums = other_forums.Union(myForums);